SMT32 Ausgabe verlangsamen

Gast #5008532
Lesenswert?

Hallo liebes Mikrocontroller Team!
Ich bin Student an einer Uni und ich will als Übung für zuhause mithilfe 
eines SMT32 Programmes von einer Hardware eine Stimmaufnahme von mir 
verlangsamen und schneller machen!

Also ich hab es bereits so weit geschafft, das ich die Stimme in das 
Programm bekomme und mit Audacity anhören kann!

Nun ist die Frage, wie bekomm ich die Aufnahme langsamer?

Ich wollte einfach die Ausgabe verlangsamen aber ich habe leider keine 
Ahnung wie bzw ow ich da anfangen soll!
Also entweder ich seh es einfach nicht oder ich weiß auch nicht...

Villeicht habt ihr eine idee oder seht wo man da was hinzufügen kann!

Ich danke schön einmal im vorhinein!

hier ist noch der code:

///////////////////////////////////////////////////////////////
#include "stm32_init.h"

void SPI2_IRQHandler()
{
  int16_t left_out_sample = 0;
  int16_t right_out_sample = 0;
  int16_t left_in_sample = 0;
  int16_t right_in_sample = 0;

  GPIO_ToggleBits(GPIOD, GPIO_Pin_15);

  if (SPI_I2S_GetFlagStatus(I2Sx, I2S_FLAG_CHSIDE) == SET)
  {
    left_in_sample = SPI_I2S_ReceiveData(I2Sx);
    left_out_sample = left_in_sample;
    while (SPI_I2S_GetFlagStatus(I2Sxext, SPI_I2S_FLAG_TXE ) != SET){}
    SPI_I2S_SendData(I2Sxext, left_out_sample);

  }
  else
  {
    right_in_sample = SPI_I2S_ReceiveData(I2Sx);
    right_out_sample = right_in_sample;
    while (SPI_I2S_GetFlagStatus(I2Sxext, SPI_I2S_FLAG_TXE ) != SET){}
    SPI_I2S_SendData(I2Sxext, right_out_sample);
  }
}

int main(void)
{
  stm32_wm_init(FS_48000_HZ, WM_DMIC_IN, IO_METHOD_INTR);
  while(1){}
}

PS: ich programmiere mit Keil uvision 5

Liebe grüße!
Gast #5008690
Lesenswert?

Du kannst die Aufnahme mittels des DDS-Prinzips in fraktionalen 
Schritten verändern.

Oder Du kannst die Frequenz mittels der Hilbert-Transformation und 
Muliplikation mit der komplexen Harmonischen verschieben.
Gast #5012151
Lesenswert?

Wenn der ADC und DAC getrennte Chips mit getrennten Datenverbindungen 
sind, kannst du den ADC z.B. auf Samplerate 48 kHz und den DAC auf 24 
kHz stellen.
Dann würde die Ausgabe halb so schnell klingen.
Gast #5012210
Lesenswert?

>Kannst du mir zeigen wie ich das in dem Programm löse mit der halben bzw
>doppelten Sample rate ..ich bin einfach zu blöd..

Zeichne doch mal eine Grafik auf ein Blatt Papier, auf der die ersten 5 
Samples abgebildet sind ( x=time y=amplitude ).
Dann zeichne eine eine ähnlich Grafik, wie das Ausgangssignal aussehen 
soll. Mach ein Foto und poste es hier.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren