Red de conocimiento informático - Problemas con los teléfonos móviles - Programación Simulinkfft

Programación Simulinkfft

La ayuda es limitada y hay algunas preguntas que no entiendo.

(1)Esto se puede solucionar.

Es posible que desee modificar FS F,

fs = 22050

El % de frecuencia de muestreo de la señal de sonido es 22050.

X1=wavread('h:\Course Design 2 \shuzi . wav '); %Lee los datos de la señal de voz y asígnalos a la variable x1.

Sonido (x1, 22050); % Reproduce la señal de voz

y1=fft (x1, 1024); % Realiza una transformación FFT de 1024 puntos en la señal.

f = fs *(0:511)/1024;

Figura (1)

Plot(x1)% se utiliza para trazar el original en el Señal de voz en el dominio del tiempo.

Título("señal de voz original");

xlabel(' tiempo n ');

ylabel('Fuzhi n');

Figura (2)

Freqz(x1)% dibuja el diagrama de respuesta de frecuencia de la señal de voz original.

Título ("Diagrama de respuesta en frecuencia")

Imagen (3)

Subtrama (2, 1, 1);

trama (ABS(Y 1(1:512))% produce el espectro FFT de la señal de voz original.

Título ("Espectro FFT de la señal de voz original")

Gráfico de rama (2 , 1, 2);

plot(f, ABS(y 1(1:512));

Título ("Espectro de señal de voz original")

xlabel(' Hz ');

ylabel('Fuji');

(2) se agrega a la señal de voz original

s= sin(2 *pi*f*Ts*n)

Puedes configurar s=sin(2*pi*f*Ts*n) para modificar el siguiente valor d

fs = 22050<. /p>

X1=wavread('h:\Diseño del curso 2 \ shuzi . wav ');

f = fs *(0:511)/1024;

t = 0:1/22050:(size(x 1)-1)/22050; % ajusta el número de puntos de la señal de ruido agregada para que sea igual a la señal original

<. p>Au = 0.03

d =[Au * cos(2 * pi * 5000 * t)]'; señal coseno con porcentaje de ruido de 5kHz

x2 = x 1+d ;

Sonido (x2, 22050); % reproducir señal de voz ruidosa

y2=fft(x2, 1024

Figura (1)

Trama (t , x2)

Título ("Señal ruidosa");

xlabel(' tiempo n ');

ylabel(' Fuzhi n');

Imagen (2)

Gráfico de rama (2, 1, 1);

gráfico (f, ABS (y 1 (1); :512));

Título("Espectro de señal de voz original");

xlabel(' Hz ');

ylabel('Fuji');

Gráfico de rama (2, 1, 2);

plot(f, ABS(y2(1:512)));

Título ("Señal espectro con ruido agregado");

xlabel(' Hz ');

ylabel('Fuji');

(3) ya existe.

( 4) Puede aprender de los siguientes programas.

Programa 3: Diseñar filtro Butterworth usando el método de transformación bilineal

fs = 22050

X1=wavread('h:\Course Design 2 \ shuzi . wav ' );

t = 0:1/22050:(tamaño(x 1)-1)/22050;

Au = 0,03

d =[Au * cos(2 * pi * 5000 * t)]';

x2 = x 1+d;

wp = 0,25 * pi

ws = 0,3 * pi

RP = 1;

RS = 15

Fs = 22050

ts = 1/Fs;

WP 1 = 2/Ts * tan(WP/2); %Convertir indicador analógico a indicador digital

ws 1 = 2/Ts * tan(ws /2);

[N, Wn]= pero ord(WP 1, ws1, Rp, Rs, 's' % selecciona el orden mínimo del filtro.

[Z, P, K] = buttap (N); % Crear filtro analógico Butterworth

[Bap, Aap] = zp2tf (Z, P, K); >

[b, a]=lp2lp(Bap,Aap,Wn);

[bz, az]=bilinear(b,a,Fs); %Usar bilineal El método de transformación realiza la conversión. de filtro analógico a filtro digital

[H, W]=freqz(bz, az % dibuja la curva de respuesta de frecuencia

Figura (1)

Plot(W*Fs/(2*pi), abs(H))

Cuadrícula

Xlabel("Frecuencia/Hercios")

Ylabel(" Amplitud de respuesta de frecuencia")

Título("Butterworth")

f1=filter(bz, az, x2);

Figura (2)

Gráfico de rama (2, 1, 1)

Plot(t, x2)% dibuja el diagrama en el dominio del tiempo antes de filtrar.

Título ("Forma de onda en el dominio del tiempo antes del filtrado");

Gráfico de rama (2, 1, 2)

gráfico (t, f 1); Dibuja el gráfico en el dominio del tiempo filtrado.

Title("Forma de onda en el dominio del tiempo filtrada");

Sonido(f1, 22050);

F0=fft(f1,1024);

f = fs *(0:511)/1024;

Figura (3)

y2=fft(x2,1024);

Gráfico de rama (2,1,1);

plot(f,ABS(y2(1:512)); % Trazar el espectro antes de filtrar.

Title("Espectro antes de filtrar")

xlabel(' Hz ');

ylabel('Fuji');

Gráfico de rama (2, 1, 2)

F1=plot(f,ABS(F0(1:512))); % traza el espectro filtrado.

Título("Espectro filtrado")

xlabel(' Hz ');

ylabel('Fuji');

Programa 4: Utilice el método de función de ventana para diseñar filtros;

fs = 22050

X1=wavread('h:\Course Design 2 \ shuzi . wav ');

t = 0:1/22050:(tamaño(x 1)-1)/22050;

Au = 0,03

d =[Au * cos(2 * pi * 5000 * t)]';

x2 = x 1+d;

wp = 0,25 * pi

ws = 0,3 * pi

wdelta = ws-WP;

n = ceil(6.6 * pi/w delta); % redondeo

wn = (0.2+0.3)* pi/2;< / p>

b=fir1(N, wn/pi, hamming(N+1) % selecciona la función de ventana y normaliza la frecuencia de corte.

Figura (1)

Frecuencia (b, 1, 512)

f2 = filtro (bz, az, x2)

Figura (2)

Gráfico de rama (2, 1, 1)

Dibujo (t, x2)

Título ("Forma de onda en el dominio del tiempo antes del filtrado") ;

Gráfico de rama (2, 1, 2)

gráfico (t, F2);

Título ("Forma de onda en el dominio del tiempo filtrada"

Sonido (f2, 22050); % reproduce la señal de voz filtrada.

F0=fft(f2,1024);

f = fs *(0:511)/1024;

Figura (3)

y2=fft(x2,1024);

Gráfico de rama (2,1,1);

plot(f,ABS(y2(1:512));

Título("Espectro antes del filtrado")

xlabel(' Hz '

ylabel('Fuji');

Gráfico de ramas (2, 1, 2)

F2=plot(f, ABS(F0(1:512));

Título ("Espectro filtrado")

xlabel(' Hz ');

ylabel('Fuji');

Debería haber un pequeño error en estos programas. Al solucionarlo, descubrí que el. la fórmula x2 no se puede utilizar directamente. =x1+d D

(5) En resumen, se puede utilizar el siguiente procedimiento como referencia

fs = 22050

% de frecuencia de muestreo de señal de sonido es 22050.

x 1 = wav read(' Windows Critical stop . wav ');

Sonido (x1, 22050 ); % Reproducir la señal de voz

y1=fft(x1, 1024); % Realizar una transformación FFT de 1024 puntos en la señal

f = fs *(0:511)/1024;

Figura (1)

Plot(x1)% se utiliza para trazar la señal de voz original en el dominio del tiempo.

Título ("Señal de voz original");

xlabel(' tiempo n ');

ylabel('Fuzhi n');

x2=randn(1, length (x 1)) ;%Generar una señal aleatoria con la misma longitud que x

Sonido (x2, 22050);

Figura ( 2)

Plot(x2)% es un gráfico en el dominio del tiempo de la señal de voz original.

Título('Señal aleatoria gaussiana');

xlabel(' tiempo n ');

ylabel('Fuzhi n');

Figura (3)

x3 = x 1+x2;

y3=fft(x3, 1024);

f = fs *( 0 :511)/1024;

plot(t,x3)

title('señal ruidosa');

xlabel(' tiempo n '); /p>

ylabel('Fuzhin');

Imagen (4)

Gráfico de rama (4, 1, 1);

plot(); f,ABS(y 1(1:512));

Título("Espectro de señal de voz original");

xlabel(' Hz ');

ylabel('Fuji');

Trama de rama (4, 1, 2);

plot(f, ABS(y3(1:512));

Título("Espectro de señal con ruido agregado");

xlabel(' Hz ');

ylabel('Fuji');

Hay También está el problema anterior. La fórmula x3 = x2 + x1 no está disponible. Algunas personas dicen que los tipos son diferentes y no se pueden agregar directamente, pero siento que la fórmula de la función que acabo de llegar. >