编程实现任意确定信号的频谱分析方法.docx
- 文档编号:24847675
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:29
- 大小:75.83KB
编程实现任意确定信号的频谱分析方法.docx
《编程实现任意确定信号的频谱分析方法.docx》由会员分享,可在线阅读,更多相关《编程实现任意确定信号的频谱分析方法.docx(29页珍藏版)》请在冰豆网上搜索。
编程实现任意确定信号的频谱分析方法
设计目的………………………………………………1
设计原理………………………………………………1
设计内容………………………………………………2
设计过程………………………………………………2
心得体会………………………………………………20
参考文献………………………………………………20
一.设计目的
综合运用本课程的理论知识进行频谱分析以及滤波器设计,通过理论推导得出相应结论,并利用MATLAB作为工具进行实现,从而复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字信号的处理。
二、设计原理
1S平面与z平面之间满足以下映射关系:
s平面的虚轴单值地映射于z平面的单位圆上,s平面的左半平面完全映射到z平面的单位圆内。
双线性变换不存在混叠问题。
双线性变换时一种非线性变换
,这种非线性引起的幅频特性畸变可通过预畸而得到校正。
IIR低通、高通、带通数字滤波器设计采用双线性原型变换公式:
变换类型
变换关系式
备 注
低通
高通
带通
:
带通的上下边带临界频率
2 设计数字滤波器和画出其频率响应
利用上面提到的原理分别用双线性变化法和窗函数法设计以上3种滤波器,可以利用函数fir1设计FIR滤波器,可以利用函数butte,cheby1和ellip设计IIR滤波器;利用Matlab中的函数freqz画出各滤波器的频率响应。
三.设计内容
(1)对给定的CEG和弦音音频文件取合适长度的采样记录点,然后进行
频谱分析(信号的时域及幅频特性曲线要画出)。
(2)分析CEG和弦音频谱特点,对该信号频谱能量相对较为集中的频带(分低、中、高频)实现滤波(分别使用低通,带通及高通),显示滤波后信号的时域和频域曲线,并对滤波后的信号与原信号的音频进行声音回放比较。
(3)在低、中、高三个频带中,各滤出三个能量最集中的频簇,显示滤波后信号的时域和频域曲线。
(4)任意选择几个滤出的频带(或频簇)进行时域信号重建(合成),与原信号的音频进行声音回放比较。
讨论:
根据上述结果,分析什么是和弦音。
四.设计过程
1对给定的CEG和弦音音频文件取合适长度的采样记录点,然后进行频谱分析,程序如下:
Fs=8000;%语音信号采样频率为8000
x1=wavread('E:
\CEG和弦音.wav',[1008000]);%把语音截取100到8000部分
sound(x1);%播放原语音
t=(0:
[8000-100])/Fs;%算出100到8000部分的时间
y1=fft(x1,4000);%4000点fft变换
f=Fs*(0:
1999)/4000;
figure
(1);
subplot(2,1,1)%按两行一列画出图形
plot(x1);%画出时域图形
title('原始语音信号');%标题
xlabel('timen');%X轴标题
ylabel('fuzhin');%y轴标题
subplot(2,1,2);
plot(f,abs(y1(1:
2000)));%画出幅值图
title('原始语音信号频谱')
xlabel('Hz');
ylabel('幅值');
2、设计低通滤波器:
Fs=8000;
x1=wavread('E:
\CEG和弦音.wav',[1008000]');%读出原始信号
>>soundview(x1,Fs);%对原信号进行回放
>>Wp1=2*1000*1/Fs;%归一化通带截止频率
Ws1=2*1400*1/Fs;%归一化阻带截止频率
Rp1=1;%通带衰减
Rs1=100;%阻带衰减
[N1,Wn1]=cheb1ord(Wp1,Ws1,Rp1,Rs1);%估计切贝雪夫I型滤波器阶数
[num1,den1]=cheby1(N1,Rp1,Wn1,'low');%切贝雪夫I型高通滤波器系统函数;
[h1,w1]=freqz(num1,den1);%计算幅频响应
subplot(3,1,1);%画出图象位置
plot(w1/pi,abs(h1));grid;%画网格
xlabel('\omega/\pi');%x轴坐标
ylabel('振幅(幅值)');%y轴坐标
title('契比雪夫Ⅰ型低通滤波器的幅频响应');%标题
f1=filter(num1,den1,x1);%滤波
y2=fft(f1,8000);%进行fft变换
subplot(3,1,2);%画出图象位置
plot(t,f1);%画出原语音信号经低通后图像
title('低通后信号');%标题
xlabel('时间');%x轴坐标
ylabel('幅值');%y轴坐标
subplot(3,1,3);%输出图象位置
plot(abs(y2(1:
4000)));%画出频谱图像
title('低通后信号频谱')%标题
xlabel('Hz');%x轴坐标
ylabel('幅值');%y轴坐标
wavwrite(f1,'低通.wav');%写出低通后信号
x2=wavread('低通.wav');%读取低通后信号
sound(x2);
3、设计高通滤波器
Fs=8000;
x1=wavread('E:
\CEG和弦音.wav',[1008000]');%读出原始信号
soundview(x1,Fs);%回放原语音
t=(0:
[8000-100])/Fs;
Wp2=0.75;%输入Wp的值
Ws2=0.9;%输入Ws的值
Rp2=1;%输入Rp的值
Rs2=100;%输入Rs的值
[N2,Wn2]=cheb1ord(Wp2,Ws2,Rp2,Rs2);%估计切贝雪夫Ⅰ型滤波器的阶数
[num2,den2]=cheby1(N2,Rp2,Wn2,'high');%切贝雪夫I型高通滤波器系统函数;
[h2,w2]=freqz(num2,den2);%计算幅频响应
subplot(311);%数出图象位置
plot(w2/pi,abs(h2));%画出幅值图
xlabel('\omega/\pi');%x轴坐标
ylabel('振幅(幅值)');%y轴坐标
title('契比雪夫Ⅰ型高通滤波器的幅频响应');%标题
f2=filter(num2,den2,x1);%滤波
y3=fft(f2,8000);%进行fft变换
subplot(3,1,2);%输出图像位置
plot(t,f2);%做原始语音信号的时域图形
title('高通后的信号');%标题
xlabel('时间');%x轴坐标
ylabel('幅值');%y轴坐标
subplot(3,1,3);%输出图像位置
plot(abs(y3(1:
4000)));%画出频谱图像
title('高通后的信号频谱');%标题
xlabel('Hz');%x轴坐标
ylabel('幅值');%y轴坐标
wavwrite(f2,'高通.wav');%写出高通后信号
x3=wavread('高通.wav');%读出高通后信号
sound(x3);%播放高通后信号
3、设计带通滤波器
Fs=8000;
>>x1=wavread('E:
\CEG和弦音.wav',[15006000]');%读出原始信号
soundview(x1,Fs);%对原信号进行回放
>>Fs=8000;
>>x1=wavread('E:
\CEG和弦音.wav',[1008000]');%读出原始信号
>>soundview(x1,Fs);%对原信号进行回放
>>t=(0:
[8000-100])/Fs;
>>Wp3=1500,Wp4=2500,Ws3=1000,Ws4=3000;%给出指标
Wp5=[2*Wp3/Fs2*Wp4/Fs];%在1的的dB衰减处的边带频率
Ws5=[2*Ws3/Fs2*Ws4/Fs];%在衰减为100dB处的边带频率
Rp5=1;%通带损耗不大于1dB
Rs5=100;%阻带衰减不小于100dB
[N3,Wn3]=cheb1ord(Wp5,Ws5,Rp5,Rs5);%估计切贝雪夫滤波器阶数
[num3,den3]=cheby1(N3,Rp5,Wn3);%切贝雪夫滤波器系统函数
[h3,w3]=freqz(num3,den3);%计算频谱响应
figure(4);%第四个图形
subplot(3,1,1);%输出图像位置
plot(abs(h3));grid;%画出幅值图
xlabel('\omega/\pi');%x轴坐标名称
ylabel('振幅(幅值)');%y轴坐标名称
title('契比雪夫Ⅰ型带通滤波器的幅频响应');%图形名称
f3=filter(num3,den3,x1);%滤波
y4=fft(f3,8000);%作fft变换
subplot(312);%输出图像位置
plot(t,f3);%做原始语音信号的时域图形
title('带通后信号');%图像名称
xlabel('时间');%x轴名称
ylabel('幅值');%y轴名称
subplot(3,1,3);%输出图像位置
plot(abs(y4(1:
4000)));%画出频谱图像
title('带通后的语音信号频谱')%图像名称
xlabel('Hz');%x轴坐标名称
ylabel('幅值');%y轴名称
wavwrite(f3,'带通.wav');%写出过滤后带通信号
x4=wavread('带通.wav');%读出过滤后带通信号
sound(x4);
4、滤出低通后能量集中的信号
(1)
x2=wavread('低通.wav');%读取低通后信号
sound(x2);%播放低通后信号
>>Wp3=600,Wp4=700,Ws3=400,Ws4=900;
Wp5=[2*Wp3/Fs2*Wp4/Fs];
Ws5=[2*Ws3/Fs2*Ws4/Fs];
Rp5=1;
Rs5=100;
[N3,Wn3]=cheb1ord(Wp5,Ws5,Rp5,Rs5);
[num3,den3]=cheby1(N3,Rp5,Wn3);
[h3,w3]=freqz(num3,den3);
figure(4);
subplot(3,1,1);
plot(w3/pi,abs(h3));grid;
xlabel('\omega/\pi');
ylabel('振幅(幅值)');
title('契比雪夫Ⅰ型低通滤波器的幅频响应');
f4=filter(num3,den3,x2);%滤波
y5=fft(f4,8000);
subplot(312);
plot(t,f1);
title('低通能量集中后信号');
xlabel('时间');
ylabel('幅值');
subplot(3,1,3);
plot(abs(y5(1:
4000)));
title('低通的集中能量语音信号频谱')
xlabel('Hz');
ylabel('幅值');
wavwrite(f4,'低通能量集中.wav');
x5=wavread('低通能量集中.wav');
sound(x5);
(2)
x2=wavread('低通.wav');%读取低通后信号
sound(x2);%播放低通后信号
>>Wp3=700,Wp4=800,Ws3=500,Ws4=1000;
Wp5=[2*Wp3/Fs2*Wp4/Fs];
Ws5=[2*Ws3/Fs2*Ws4/Fs];
Rp5=1;
Rs5=100;
[N3,Wn3]=cheb1ord(Wp5,Ws5,Rp5,Rs5);
[num3,den3]=cheby1(N3,Rp5,Wn3);
[h3,w3]=freqz(num3,den3);
figure(4);
subplot(3,1,1);
plot(w3/pi,abs(h3));grid;
xlabel('\omega/\pi');
ylabel('振幅(幅值)');
title('契比雪夫Ⅰ型低通滤波器的幅频响应');
f4=filter(num3,den3,x2);%滤波
y5=fft(f4,8000);
subplot(312);
plot(t,f1);
title('低通能量集中后信号');
xlabel('时间');
ylabel('幅值');
subplot(3,1,3);
plot(abs(y5(1:
4000)));
title('低通的集中能量语音信号频谱')
xlabel('Hz');
ylabel('幅值');
wavwrite(f4,'低通能量集中.wav');
x52=wavread('低通能量集中.wav');
sound(x52);
(3)
x2=wavread('低通.wav');%读取低通后信号
sound(x2);%播放低通后信号
>>Wp3=800,Wp4=900,Ws3=600,Ws4=1100;
Wp5=[2*Wp3/Fs2*Wp4/Fs];
Ws5=[2*Ws3/Fs2*Ws4/Fs];
Rp5=1;
Rs5=100;
[N3,Wn3]=cheb1ord(Wp5,Ws5,Rp5,Rs5);
[num3,den3]=cheby1(N3,Rp5,Wn3);
[h3,w3]=freqz(num3,den3);
figure(4);
subplot(3,1,1);
plot(w3/pi,abs(h3));grid;
xlabel('\omega/\pi');
ylabel('振幅(幅值)');
title('契比雪夫Ⅰ型低通滤波器的幅频响应');
f4=filter(num3,den3,x2);%滤波
y5=fft(f4,8000);
subplot(312);
plot(t,f1);
title('低通能量集中后信号');
xlabel('时间');
ylabel('幅值');
subplot(3,1,3);
plot(abs(y5(1:
4000)));
title('低通的集中能量语音信号频谱')
xlabel('Hz');
ylabel('幅值');
wavwrite(f4,'低通能量集中.wav');
x53=wavread('低通能量集中.wav');
sound(x53);
5、滤出高通后能量集中信号
(1)
>>x3=wavread('高通.wav');%读出高通后信号
sound(x3);%播放高通后信号
>>Wp3=3200,Wp4=3400,Ws3=3000,Ws4=3600;
Wp5=[2*Wp3/Fs2*Wp4/Fs];
Ws5=[2*Ws3/Fs2*Ws4/Fs];
Rp5=1;
Rs5=100;
[N3,Wn3]=cheb1ord(Wp5,Ws5,Rp5,Rs5);
[num3,den3]=cheby1(N3,Rp5,Wn3);
[h3,w3]=freqz(num3,den3);
figure(4);
subplot(3,1,1);
plot(w3/pi,abs(h3));grid;
xlabel('\omega/\pi');
ylabel('振幅(幅值)');
title('契比雪夫Ⅰ型带通滤波器的幅频响应');
f5=filter(num3,den3,x3);%滤波
y6=fft(f5,8000);
subplot(312);
plot(t,f5);
title('高通能量集中信号');
xlabel('时间');
ylabel('幅值');
subplot(3,1,3);
plot(abs(y6(1:
4000)));
title('高通能量集中的语音信号频谱')
xlabel('Hz');
ylabel('幅值');
wavwrite(f5,'高通后高通能量集中.wav');
x6=wavread('高通后高通能量集中.wav');
sound(x6);
(2)
>>x3=wavread('高通.wav');%读出高通后信号
sound(x3);%播放高通后信号
>>Wp3=3000,Wp4=3200,Ws3=2800,Ws4=3400;
Wp5=[2*Wp3/Fs2*Wp4/Fs];
Ws5=[2*Ws3/Fs2*Ws4/Fs];
Rp5=1;
Rs5=100;
[N3,Wn3]=cheb1ord(Wp5,Ws5,Rp5,Rs5);
[num3,den3]=cheby1(N3,Rp5,Wn3);
[h3,w3]=freqz(num3,den3);
figure(4);
subplot(3,1,1);
plot(w3/pi,abs(h3));grid;
xlabel('\omega/\pi');
ylabel('振幅(幅值)');
title('契比雪夫Ⅰ型带通滤波器的幅频响应');
f5=filter(num3,den3,x3);%滤波
y6=fft(f5,8000);
subplot(312);
plot(t,f5);
title('高通能量集中信号');
xlabel('时间');
ylabel('幅值');
subplot(3,1,3);
plot(abs(y6(1:
4000)));
title('高通能量集中的语音信号频谱')
xlabel('Hz');
ylabel('幅值');
wavwrite(f5,'高通后高通能量集中.wav');
x61=wavread('高通后高通能量集中.wav');
sound(x61);
(3)
>>x3=wavread('高通.wav');%读出高通后信号
sound(x3);%播放高通后信号
>>Wp3=3300,Wp4=3500,Ws3=3100,Ws4=3700;
Wp5=[2*Wp3/Fs2*Wp4/Fs];
Ws5=[2*Ws3/Fs2*Ws4/Fs];
Rp5=1;
Rs5=100;
[N3,Wn3]=cheb1ord(Wp5,Ws5,Rp5,Rs5);
[num3,den3]=cheby1(N3,Rp5,Wn3);
[h3,w3]=freqz(num3,den3);
figure(4);
subplot(3,1,1);
plot(w3/pi,abs(h3));grid;
xlabel('\omega/\pi');
ylabel('振幅(幅值)');
title('契比雪夫Ⅰ型带通滤波器的幅频响应');
f5=filter(num3,den3,x3);%滤波
y6=fft(f5,8000);
subplot(312);
plot(t,f5);
title('高通能量集中信号');
xlabel('时间');
ylabel('幅值');
subplot(3,1,3);
plot(abs(y6(1:
4000)));
title('高通能量集中的语音信号频谱')
xlabel('Hz');
ylabel('幅值');
wavwrite(f5,'高通后高通能量集中.wav');
x62=wavread('高通后高通能量集中.wav');
sound(x62);
6、滤出带通后能量集中信号
(1)
x4=wavread('带通.wav');
sound(x4);
pause
(2);%停顿2秒
Wp3=1600,Wp4=1700,Ws3=1500,Ws4=1800;
Wp5=[2*Wp3/Fs2*Wp4/Fs];
Ws5=[2*Ws3/Fs2*Ws4/Fs];
Rp5=1;
Rs5=100;
[N3,Wn3]=cheb1ord(Wp5,Ws5,Rp5,Rs5);
[num3,den3]=cheby1(N3,Rp5,Wn3);
[h3,w3]=freqz(num3,den3);
figure(4);
subplot(3,1,1);
plot(w3/pi,abs(h3));grid;
xlabel('\omega/\pi');
ylabel('振幅(幅值)');
title('契比雪夫Ⅰ型带通滤波器的幅频响应');
f6=filter(num3,den3,x4);%滤波
y7=fft(f6,8000);
subplot(312);
plot(t,f6);
title('带通后带通能量集中信号');
xlabel('时间');
ylabel('幅值');
subplot(3,1,3);
plot(abs(y7(1:
4000)));
title('带通能量集中的语音信号频谱')
xlabel('Hz');
ylabel('幅值');
wavwrite(f6,'带通带通能量集中.wav');
x7=wavread('带通带通能量集中.wav');
sound(x7);
(2)
x4=wavread('带通.wav');
sound(x4);
pause
(2);%停顿2秒
Wp3=1800,Wp4=1900,Ws3=1700,Ws4=2000;
Wp5=[2*Wp3/Fs2*Wp4/Fs];
Ws5=[2*Ws3/Fs2*Ws4/Fs];
Rp5=1;
Rs5=100;
[N3,Wn3]=cheb1ord(Wp5,Ws5,Rp5,Rs5);
[num3,den3]=cheby1(N3,Rp5,Wn3);
[h3,w3]=freqz(num3,den3);
figure(4);
subplot(3,1,1);
plot(w3/pi,abs(h3));grid;
xlabel('\omega/\pi');
ylabel('振幅(幅值)');
title('契比雪夫Ⅰ型带通滤波器的幅频响应');
f6=filter(num3,den3,x4);%滤波
y7=fft(f6,8000);
subplot(312);
plot(t,f6);
title('带通后带通能量集中信号');
xlabel('时间');
ylabel('幅值');
subplot(3,1,3);
plot(abs(y7(1:
4000)));
title('带通能量集中的语音信号频谱')
xlabel('Hz');
ylabel('幅值');
wavwrite(f6,'带通带通能量集中.wav');
x71=wavread('带通带通能量集中.wav');
sound(x71);
(3)
x4=wavread('带通.wav');
sound(x4);
pause
(2);%停顿2秒
Wp3=2000,Wp4=2100,Ws3=1900,Ws4=2200;
Wp5=[2*Wp3/Fs2*Wp4/Fs];
Ws5=[2*Ws3/Fs2*Ws4/Fs];
Rp5=1;
Rs5=100;
[N3,Wn3]=cheb1ord(Wp5,Ws5,Rp5,Rs5);
[nu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编程 实现 任意 确定 信号 频谱 分析 方法