数字信号处理大作业代码及报告.zip

1、原始语音信号的采集与处理

程序清单:

%================原始语音信号===========================%

figure(1);

[music,Fs] = audioread('pei.wav'); %语音信号的采样

y1=music(:,1); %取单声道

y2=music(:,2);

% sound(y1,Fs);

Ns=length(y1); %采样点数Ns

t=(0:Ns-1)/Fs;

subplot(231);

plot(t,y1);title('原始音频信号波形');

xlabel('time/s');ylabel('幅度');

Y1=fft(y1);

magY1=abs(Y1);

magY1(1)=magY1(1)/Ns;

magY1(2:Ns)=magY1(2:Ns)/Ns*2 ;

subplot(234);

f=(0:Ns-1)*Fs/Ns; %Fs/Ns为频率分辨率

plot(f,magY1);title('幅频特性曲线');

xlabel('frequency/Hz');ylabel('幅度');

axis([0 1e+4 0 0.03]);

运行结果:

图一 原始语音信号时域波形

图二 原始语音信号频谱图

2、噪声信号的生成与处理

程序清单:

%=============噪声====================================%

t=(0:Ns-1)/Fs;

noise=sin(2*pi*7500*t);%噪声为正弦波幅值为1 频率为7500Hz

subplot(232);

plot(t,noise);title('噪声信号波形');

xlabel('time/s');ylabel('幅度');

Noise=fft(noise);

magN=abs(Noise);

magN(1)=magN(1)/Ns;

magN(2:Ns)=magN(2:Ns)/Ns*2;

subplot(235);

f=(0:length(Noise)-1)*Fs/Ns;

plot(f,magN);title('幅频特性曲线');

xlabel('frequency/Hz');ylabel('幅度');

axis([0 1e+4 0 0.03]);

运行结果:

图三 噪声信号时域图

图四 噪声信号频谱图

3、加噪语音信号的生成与处理

程序清单:

%==============加性噪声================================%

y1n=y1+noise';

% sound(y1n,Fs);

t=(0:length(y1n)-1)/Fs;

subplot(233);

plot(t,y1n);title('加噪后音频信号波形');

xlabel('time/s');ylabel('幅度');

Xn=fft(y1n);

magXn=abs(Xn);

magXn(1)=magXn(1)/Ns;

magXn(2:Ns)=magXn(2:Ns)*2/Ns;

subplot(236);

f=(0:length(Xn)-1)*Fs/length(Xn);

plot(f,magXn);title('幅频特性曲线');

xlabel('frequency/Hz');ylabel('幅度');

axis([0 1e+4 0 0.03]);

运行结果:

图五 加噪后语音信号时域图

图六 加噪语音信号频谱图

4、巴特沃斯低通滤波器的设计

程序清单:

%==============巴特沃斯低通滤波器======================%

fp=4900;fs=7450;As=100;Rp=1; OmegaP=2*pi*fp;OmegaS=2*pi*fs;

wp=OmegaP/Fs;ws=OmegaS/Fs;

wp1=2*Fs*tan(wp/2);

ws1=2*Fs*tan(ws/2);

[N,wc]=buttord(wp1,ws1,Rp,As,'s');

[b,a]=butter(N,wc,'s');

[bz,az]=bilinear(b,a,Fs);

w0=[wp,ws];

Hx1=freqz(bz,az,w0);

[H,w]=freqz(bz,az);

dbHx1=-20*log10(abs(Hx1)/max(abs(H)));

figure(4);

plot(w/(2*pi)*Fs/1000,20*log10(abs(H)));

title('巴特沃斯低通数字滤波器幅频特性');

xlabel('f(KHz)');ylabel('dB');

%----滤波后音频信号----%

figure(2);

out=filter(bz,az,y1n);

t=(0:length(out)-1)/Fs;

subplot(221);

plot(t,out);title('巴特沃斯低通滤波后音频信号波形');

xlabel('time/s');ylabel('幅度');

OUT=fft(out);

magOUT=abs(OUT);

magOUT(1)=magOUT(1)/Ns;

magOUT(2:Ns)=magOUT(2:Ns)/Ns*2;

subplot(223);

f=(0:length(OUT)-1)*Fs/length(OUT);

plot(f,magOUT);title('幅频特性曲线');

xlabel('frequency/Hz');ylabel('幅度');

axis([0 1e+4 0 0.03]);

% sound(out,Fs);

运行结果:

图七 巴特沃斯低通滤波器幅频特性曲线

图八 滤波后语音信号频域波形

5、切比雪夫II型低通滤波器设计

程序清单:

%=============切比雪夫II型低通滤波器================%

fp=6900;fs=7450;As=100;Rp=1;

OmegaP=2*pi*fp;OmegaS=2*pi*fs;

wp=OmegaP/Fs;ws=OmegaS/Fs;

wp1=2*Fs*tan(wp/2);

ws1=2*Fs*tan(ws/2);

[N,wc]=cheb2ord(wp1,ws1,Rp,As,'s');

[b,a]=cheby2(N,As,wc,'s');

[bz,az]=bilinear(b,a,Fs);

figure(5);

w0=[wp,ws];

Hx2=freqz(bz,az,w0);

[H,w]=freqz(bz,az);

dbHx2=-20*log10(abs(Hx2)/max(abs(H)));

figure(5);

plot(w/(2*pi)*Fs/1000,20*log10(abs(H)));

title('切比雪夫II型低通数字滤波器幅频特性');

xlabel('f(KHz)');ylabel('dB');

%-----------------滤波后音频信号-------------%

figure(2);

out=filter(bz,az,y1n);

t=(0:length(out)-1)/Fs;

subplot(222);plot(t,out);

title('切比雪夫II型低通滤波后音频信号波形');

xlabel('time/s');ylabel('幅度');

OUT=fft(out);

magOUT=abs(OUT);

magOUT(1)=magOUT(1)/Ns;

magOUT(2:Ns)=magOUT(2:Ns)/Ns*2;

subplot(224);

f=(0:length(OUT)-1)*Fs/length(OUT);

plot(f,magOUT);title('幅频特性曲线');

xlabel('frequency/Hz');ylabel('幅度');

axis([0 1e+4 0 0.03]);

% sound(out,Fs);

运行结果:

图九 切比雪夫II型低通滤波器频率响应

图十 滤波后语音信号频谱图

6、巴特沃斯带阻滤波器设计

程序清单:

%==================巴特沃斯带阻滤波器================%

fp1=7000;fs1=7450;fs2=7550;fp2=8000;As=100;Rp=1;

OmegaP1=2*pi*fp1;OmegaS1=2*pi*fs1;

OmegaP2=2*pi*fp2;OmegaS2=2*pi*fs2;

wp1=OmegaP1/Fs;ws1=OmegaS1/Fs;

wp2=OmegaP2/Fs;ws2=OmegaS2/Fs;

wp11=2*Fs*tan(wp1/2);

ws11=2*Fs*tan(ws1/2);

wp22=2*Fs*tan(wp2/2);

ws22=2*Fs*tan(ws2/2);

wp=[wp11,wp22];

ws=[ws11,ws22];

[N,wc]=buttord(wp,ws,Rp,As,'s');

[b,a]=butter(N,wc,'stop','s');

[bz,az]=bilinear(b,a,Fs);

w0=[wp1,ws1,ws2,wp2];

Hx3=freqz(bz,az,w0);

[H,w]=freqz(bz,az);

dbHx3=-20*log10(abs(Hx3)/max(abs(H)));

figure(6);

plot(w/(2*pi)*Fs/1000,20*log10(abs(H)));

title('巴特沃斯带阻数字滤波器幅频特性');

xlabel('f(KHz)');ylabel('dB');

%----滤波后音频信号----%

figure(3);

out1=filter(bz,az,y1n);

t=(0:length(out1)-1)/Fs;

subplot(221);

plot(t,out1);title('巴特沃斯带阻滤波后音频信号波形');

xlabel('time/s');ylabel('幅度');

OUT1=fft(out1);

magOUT1=abs(OUT1);

magOUT1(1)=magOUT1(1)/Ns;

magOUT1(2:Ns)=magOUT1(2:Ns)/Ns*2;

subplot(223);

f=(0:length(OUT1)-1)*Fs/length(OUT1);

plot(f,magOUT1);title('幅频特性曲线');

xlabel('frequency/Hz');ylabel('幅度');

axis([0 1e+4 0 0.03]);

% sound(out1,Fs);

运行结果:

图十一 巴特沃斯带阻滤波器频率响应

图十二 滤波后语音信号的频谱图

7、切比雪夫II型带阻滤波器设计

程序清单:

%==========切比雪夫II型带阻滤波器============%

fp1=7200;fs1=7450;fs2=7550;fp2=7800;As=100;Rp=1;

OmegaP1=2*pi*fp1;OmegaS1=2*pi*fs1; OmegaP2=2*pi*fp2;OmegaS2=2*pi*fs2;

wp1=OmegaP1/Fs;ws1=OmegaS1/Fs; wp2=OmegaP2/Fs;ws2=OmegaS2/Fs;

wp11=2*Fs*tan(wp1/2); ws11=2*Fs*tan(ws1/2);

wp22=2*Fs*tan(wp2/2);

ws22=2*Fs*tan(ws2/2);

wp=[wp11,wp22];

ws=[ws11,ws22];

[N,wc]=cheb2ord(wp,ws,Rp,As,'s'); [b,a]=cheby2(N,As,wc,'stop','s'); [bz,az]=bilinear(b,a,Fs); w0=[wp1,ws1,ws2,wp2];

Hx4=freqz(bz,az,w0); [H,w]=freqz(bz,az);

dbHx4=-20*log10(abs(Hx4)/max(abs(H)));

figure(7);

plot(w/(2*pi)*Fs/1000,20*log10(abs(H)));

title('切比雪夫II型带阻数字滤波器幅频特性');

xlabel('f(KHz)');ylabel('dB');

%----滤波后音频信号----%

figure(3);

out1=filter(bz,az,y1n);

t=(0:length(out1)-1)/Fs;

subplot(222);plot(t,out1);

title('切比雪夫II型带阻滤波后音频信号波形');

xlabel('time/s');ylabel('幅度');

OUT1=fft(out1);

magOUT1=abs(OUT1);

magOUT1(1)=magOUT1(1)/Ns;

magOUT1(2:Ns)=magOUT1(2:Ns)/Ns*2;

subplot(224);

f=(0:length(OUT1)-1)*Fs/length(OUT1);

subplot(224);plot(f,magOUT1);

title('幅频特性曲线');

xlabel('frequency/Hz');ylabel('幅度');

axis([0 1e+4 0 0.03]);

% sound(out1,Fs);

运行结果:

图十三 切比雪夫II型带阻滤波器频率响应

图十四 滤波后语音信号的频谱图

小结
本次大作业利用函数audioread对语音信号进行采样,记住采样频率和采样点数,后利用函数FFT对信号进行快速傅里叶变换,得到信号的频谱特性,然后加入一固定频率干扰信号,再画出语音信号干扰前后的时域波形,并对其频谱进行分析。最后采用双线性变换法设计几种类型的数字滤波器并对混合语音信号进行滤波、FFT快速傅里叶变换并分析各种滤波器的特点及优劣性。

1、从幅度特性比较,巴特沃斯滤波器在全频段具有单调下降的幅度特性;切比雪夫II型在通带是单调下降的,在阻带是呈等波纹型的。

2、从阶次N比较,在滤波器具有相同的幅度特性指标下,巴特沃斯滤波器所需阶次N比切比雪夫II型滤波器所需阶次要大,本大作业中,相对于低通滤波器,巴特沃斯滤波器为26阶;切比雪夫II型滤波器为13阶。相对于带阻滤波器,巴特沃斯滤波器为6阶;切比雪夫II型滤波器为5阶。

3、从过渡带比较,当阶次N,通带最大衰减Rp(dB),阻带最小衰减As(dB)相同且通带截止频率OmegaP(或阻带截止频率OmegaS)相同时,巴特沃斯型的过渡带比切比雪夫II型要宽。本次大作业中,巴特沃斯低通滤波器过渡带宽为2550Hz,切比雪夫II型低通滤波器过渡带宽为550Hz,明显较窄。

4、在滤波器设计中,当滤波器的通带最大衰减Rp(dB)越小,阻带最小衰减As(dB)越大,滤波器的滤波效果越好,但同时滤波器的阶次越高,复杂度也越高,设计更困难。

5、相较于低通滤波器和带阻滤波器之间,带阻滤波器的滤波效果更好,它能准确滤除噪声信号而保留语音信号;低通滤波器不仅将噪声信号滤除还把其后的的所有频率分量全部滤除。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/m0_66999594/article/details/139567907

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、设计一个工作于采样频率 80 kHz 的巴特沃斯低通数字滤波器,要求通带 边界频率为 4 kHz,通带最大衰减为 0.5 dB,阻带边界频率为 20 kHz,阻带最 小衰减为 45 dB。调用 Matlab 工具性函数 buttord 和 butter 设计,显示该数字 滤波器系统函数 H(z)的系数,并绘制所设计的滤波器的单位脉冲响应、损耗函 数曲线和相频特性曲线。 2、设计一个工作于采样频率 5 kHz 的椭圆帯阻数字滤波器,要求通带边界 频率为 500 Hz 和 2125 Hz,通带最大衰减为 1 dB,阻带边界频率为 1050 Hz 和 1400 Hz,阻带最小衰减为 40 dB。调用 Matlab 工具箱函数 ellipord 和 ellip 设计该数字滤波器,显示该滤波器系统函数 H(z)的系数,并绘制该滤波器的单 位脉冲响应、损耗函数曲线和相频特性曲线。 3、调用 Matlab 工具箱函数 remezord 和 remez 设计线性相位高通 FIR 滤波 器,实现对模拟信号的采样序列 x(n)的数字高通滤波处理。设计指标要求:采 样频率为 16kHz;通带截止频率为 5.5 kHz,通带最小衰减为 1 dB;过渡带宽度 小于或等于 3.5 kHz,阻带最小衰减为 75 dB。列出 h(n)的序列数据,画出损耗 函数曲线,并检验设计结果。 4、调用 Matlab 工具箱函数 fir1 设计线性相位带通 FIR 滤波器。要求通带 截止频率为0.55 rad和0.7 rad,阻带截止频率为0.45 rad和0.8 rad, 通带最大衰减为 0.15 dB,阻带最小衰减为 40 dB。显示所设计的滤波器单位脉 冲响应 h(n)的数据,并画出损耗函数曲线。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值