⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 low.m

📁 输入自己事先录制好的语音信号
💻 M
字号:
%用fir1函数设计低通滤波器
 clf;
[y,fs,bits]=wavread('d:\test.wav');  %将文件读进来
%设计低通滤波器
wp=1000/(fs/2);              %计算通带的频率
ws=1200/(fs/2);              %计算阻带的频率
fp=[1000 1200];              %通带频率
ap=10^0.05-1;                %求通带衰减
as=10^(-5);                 %求阻带衰减
dev=[ap as];
mags=[1 0];
[n,wn,beta,ftype]=kaiserord(fp,mags,dev,fs);         %求的用kaiserord时的滤波器阶数
b=fir1(n,wn,ftype,kaiser(n+1,beta),'noscale');        %取滤波器的阶数为n
figure(1);
freqz(b)   ;%画出滤波器的幅度相应和相位
figure(2);
subplot(2,3,1);
plot(y,'LineWidth',2);
%axis([0 50000 -0.05 0.06]);
xlabel('时间/t')  ; ylabel('幅度/A');
title('原信号波形');   
spectrum=fft(y);                %对采样点进行fft变换
n2=length(spectrum);             %计算fft变换后向量的长度
t2=0:n2-1;   
subplot(2,3,2);
spreal=abs(spectrum)   ;        %计算fft变换后序列的实部
spimag=angle(spectrum)  ;         %计算fft变换后序列的虚部
plot(t2,spreal)  ;
%axis([0 60000 -0.05 4]);  
xlabel('k')  ;                   %把x轴定义为w
title('原信号幅度');                   %标明此图形画的是幅度
subplot(2,3,3);
plot(t2,spimag)  ;  
xlabel('k')   ;                  %把x轴定义为虚部
title('原信号相位')     ;              %把x轴定义为虚部
y0=fftfilt(b,y);            %用低通滤波器对抽样信号进行滤波
n=length(y0);
xx=0:n-1;
subplot(2,3,4);
plot(xx,y0);
%axis([0 50000 -0.05 0.06]);
xlabel('n');
ylabel('幅度');
y1=fft(y0);                   %对滤波器输出信号进行fft变换
d=length(y1);
xx=0:d-1;
y0am=abs(y1);
subplot(2,3,5);
plot(xx,y0am);
%axis([0 60000 -0.05 4]); 
title('经过低通滤波器后信号幅度');
y0im=angle(y1);
subplot(2,3,6);
plot(xx,y0im);
axis([0 100000 -4 4]);
title('经过低通滤波器后信号相位');
sound(y0,fs);                            %回放录制信号       

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -