数字信号处理课程设计说明书.docx

上传人:b****6 文档编号:8117830 上传时间:2023-01-28 格式:DOCX 页数:28 大小:106.78KB
下载 相关 举报
数字信号处理课程设计说明书.docx_第1页
第1页 / 共28页
数字信号处理课程设计说明书.docx_第2页
第2页 / 共28页
数字信号处理课程设计说明书.docx_第3页
第3页 / 共28页
数字信号处理课程设计说明书.docx_第4页
第4页 / 共28页
数字信号处理课程设计说明书.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

数字信号处理课程设计说明书.docx

《数字信号处理课程设计说明书.docx》由会员分享,可在线阅读,更多相关《数字信号处理课程设计说明书.docx(28页珍藏版)》请在冰豆网上搜索。

数字信号处理课程设计说明书.docx

数字信号处理课程设计说明书

广西科技大学

数字信号处理课程设计说明书

 

题目:

编程实现任意确定信号

的频谱分析算法(0.9)

系别:

计算机学院

专业:

通信工程

班级:

通信102班

学号:

201000402049

姓名:

黄绍耕

指导教师:

周坚和

日期:

2012年6月14日

 

目录

摘要………………………………………………………………….2

一、设计内容………………………………………………………2

二、设计原理………………………………………………………2

三、设计目的………………………………………………………4

四、实现过程………………………………………………………4

4.1.CEG和弦音音频文件的频谱分析…………………………4

4.2.对该信号频谱能量较集中的频带滤波……………………5

4.3.对滤波后的音频信号再滤出三个能量最集中的频簇……………9

4.4.重建信号与原信号的音频进行声音回放比较……………21

4.5.分析什么是和弦音…………………………………………22

五、课程设计总结…………………………………………………23

六、参考文献………………………………………………………23

摘要:

MATLAB主要是一种应用软件,可以运用高级语言编程思想,解决电子信息中的问题,可以做出仿真结果。

如信号处理,电路分析等。

本次课程设计主要是用MATLAB作为工具平台对给定的CEG和弦音音频文件进行分析处理,编程实现任意确定信号的频谱分析算法。

设计内容

(1)对给定的CEG和弦音音频文件取合适长度的采样记录点,然后进行频谱分析(信号的时域及幅频特性曲线要画出)。

(2)分析CEG和弦音频谱特点,对该信号频谱能量相对较为集中的频带(分低、中、高频)实现滤波(分别使用低通,带通及高通),显示滤波后信号的时域和频域曲线,并对滤波后的信号与原信号的音频进行声音回放比较。

(3)在低、中、高三个频带中,各滤出三个能量最集中的频簇,显示滤波后信号的时域和频域曲线。

(4)任意选择几个滤出的频带(或频簇)进行时域信号重建(合成),与原信号的音频进行声音回放比较。

讨论:

根据上述结果,分析什么是和弦音。

二、设计原理

1、采用双线性变换法设计滤波器,其原理如下:

   S平面与z平面之间满足以下映射关系:

s平面的虚轴单值地映射于z平面的单位圆上,s平面的左半平面完全映射到z平面的单位圆内。

双线性变换不存在混叠问题。

 双线性变换时一种非线性变换

,这种非线性引起的幅频特性畸变可通过预畸而得到校正。

IIR低通、高通、带通数字滤波器设计采用双线性原型变换公式:

变换类型

         变换关系式

   备  注

低通

高通

 

带通

为带通的上下

边带临界频率

可以利用上面提到的原理分别用双线性变化法设计以上3种滤波器,可以利用函数fir1设计FIR滤波器,可以利用函数butte,cheby1和ellip设计IIR滤波器;利用MATLAB中的函数freqz画出各滤波器的频率响应。

2、函数FFT用于序列快速傅立叶变换:

2.1函数的一种调用格式为:

y=fft(x)

其中,x是序列,y是序列的FFT,x可以为一向量或矩阵,若x为一向量,y是x的FFT。

且和x相同长度。

若x为一矩阵,则y是对矩阵的每一列向量进行FFT。

如果x长度是2的幂次方,函数fft执行高速基-2FFT算法;否则fft执行一种混合基的离散傅立叶变换算法,计算速度较慢。

2.2函数FFT的另一种调用格式为:

y=fft(x,N)式中,x,y意义同前,N为正整数。

函数执行N点的FFT。

若x为向量且长度小于N,则函数将x补零至长度N。

若向量x的长度大于N,则函数截短x使之长度为N。

若x为矩阵,按相同方法对x进行处理。

经函数fft求得的序列y一般是复序列,通常要求其幅值和相位。

MATLAB提供求复数的幅值和相位函数:

abs,angle,这些函数一般和FFT同时使用。

函数abs(x)用于计算复向量x的幅值,函数angle(x)用于计算复向量的相角,介于和之间,以弧度表示。

函数unwrap(p)用于展开弧度相位角p,当相位角绝对变化超过时,函数把它扩展至。

3、频率计算:

若N点序列x(n)(n=0,1,…,N-1)是在采样频率下获得的。

它的FFT也是N点序列,即X(k)(k=0,1,2,…,N-1),则第k点所对应实际频率值为f=k*fs/N.

三、设计目的:

综合运用本课程的理论知识进行频谱分析以及滤波器设计,通过理论推导得出相应结论,并利用MATLAB作为工具进行实现,从而复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字信号的处理。

四、实现过程

4.1.CEG和弦音音频文件的频谱分析

1、对给定的CEG和弦音音频文件取合适长度的采样记录点,然后进行频谱分析,并画出信号的时域及幅频特性曲线。

程序代码如下:

Fs=8000;%语音信号采样频率为8000

x=wavread('C:

\MATLAB7\work\CEG和弦音.wav',[1008000]);%把语音截取100到8000部分

sound(x);%播放出语音

t=(0:

[8000-1000])/Fs;%计算从1000到8000点的时间

y=fft(x,5000);%对语音信号进行FFT运算

f=Fs*(0:

2499)/5000;

figure

(1);

subplot(2,1,1)%在窗口中生成2行1列共2个子图,当前激活第1个图

plot(x);%画出连续时域图形

title('原和弦音信号的时域图');%标题为原始信号的时域图

xlabel('时间');%定义图形横坐标为'时间’

ylabel('幅值');%定义图形纵坐标为''幅值'

subplot(2,1,2);%在窗口中生成2行1列共2个子图,当前激活第2个图

plot(f,abs(y(1:

2500)));%画出幅值图

title('原和弦音信号的时域图');%定义图形标题为'原和弦音信号的时域图'

xlabel('频率');%定义图形横坐标为'频率’

ylabel('幅值');%定义图形纵坐标为''幅值'

执行如下:

4.2.对该信号频谱能量较集中的频带滤波

2、对该信号频谱能量相对较为集中的频带(分低、中、高频)实现滤波(分别使用低通,带通及高通),同时显示滤波后信号的时域和频域曲线,并对滤波后的信号与原信号的音频进行声音回放比较。

程序代码如下:

(1)设计低通滤波器:

Fs=8000;

x=wavread('C:

\MATLAB7\work\CEG和弦音.wav',[10008000]');%读出和弦音信号

t=(0:

[8000-1000])/Fs;%计算从1000到8000点的时间

y=fft(x,5000);%对和弦音信号进行FFT运算

f=Fs*(0:

2499)/5000;

Ws=2*1200*1/8000;%滤波器的阻带截止频率

Wp=2*1000*1/8000;%滤波器的通带截止频率

Rs=100;%定义通带最小阻带衰减

Rp=1;%定义通带波纹系数

[N,Wn]=cheb1ord(Wp,Ws,Rp,Rs);%估计切贝雪夫I型滤波器阶数

[num,den]=cheby1(N,Rp,Wn,'low');%切贝雪夫I型低通滤波器系统函数;

[h,w]=freqz(num,den);%数字低通滤波器的频率响应

subplot(3,1,1);%在窗口中生成3行1列共3个子图,当前激活第1个子图

plot(w/pi,abs(h));grid;%画出网格

xlabel('\omega/\pi');%在xabel中显示归一化

/

ylabel('振幅');%定义图形纵坐标为''振幅'

title('契比雪夫Ⅰ型低通滤波器的幅频响应');%定义标题

f1=filter(num,den,x);%滤波

y=fft(f1,8000);%进行fft变换

subplot(3,1,2);%在窗口中生成3行1列共3个子图,当前激活第2个子图

plot(f1);%画出原语音信号经低通后图像

title('低通滤波后的信号');%定义标题

xlabel('时间');%定义图形横坐标为'时间’

ylabel('幅值');%定义图形纵坐标为''幅值'

subplot(3,1,3);%在窗口中生成3行1列共3个子图,当前激活第3个子图

plot(abs(y(1:

4000)));%画出频谱图像

title('低通后滤波信号频谱')%定义标题

xlabel('频率');%定义图形横坐标为'频率’

ylabel('幅值');%定义图形纵坐标为''幅值'

wavwrite(f1,'低通.wav');%写出低通后信号

x1=wavread('低通.wav');%读取低通后信号

sound(x1);%播放低通后的语音

执行如下:

(2)设计高通滤波器:

程序代码如下:

Fs=8000;

x=wavread('C:

\MATLAB7\work\CEG和弦音.wav',[10008000]);%读出和弦音信号

t=(0:

[8000-1000])/Fs;%计算从1000到8000点的时间

y=fft(x,5000);%对和弦音信号进行FFT运算

f=Fs*(0:

2499)/5000;

Ws1=2*3000*1/8000;%滤波器的阻带截止频率

Wp1=2*3200*1/8000;%滤波器的通带截止频率

Rs1=100;%定义通带最小阻带衰减

Rp1=1;%定义通带波纹系数

[N1,Wn1]=cheb1ord(Wp1,Ws1,Rp1,Rs1);%估计切贝雪夫Ⅰ型滤波器阶数

[num1,den1]=cheby1(N1,Rp1,Wn1,'high');%切贝雪夫I型高通滤波器系统函数;

[h1,w1]=freqz(num1,den1);%计算幅频响应

subplot(3,1,1);%在窗口中生成3行1列共3个子图,当前激活第1个子图

plot(w1/pi,abs(h1));%画出幅值图

xlabel('\omega/\pi');%在xabel中显示归一化

/

ylabel('振幅');%定义图形纵坐标为''振幅'

title('契比雪夫Ⅰ型高通滤波器的幅频响应');%定义标题

f2=filter(num1,den1,x);%滤波

y1=fft(f2,8000);%进行fft变换

subplot(3,1,2);%在窗口中生成3行1列共3个子图,当前激活第2个子图

plot(f2);%做原始语音信号的时域图形

title('高通滤波后的信号');%定义标题

xlabel('时间');%定义图形横坐标为'时间’

ylabel('幅值');%定义图形纵坐标为''幅值'

subplot(3,1,3);%在窗口中生成3行1列共3个子图,当前激活第3个子图

plot(abs(y1(1:

4000)));%画出频谱图像

title('高通滤波后的信号频谱');%定义标题

xlabel('频率');%定义图形横坐标为'频率’

ylabel('幅值');%定义图形纵坐标为'幅值'

wavwrite(f2,'高通.wav');%写出高通后信号

x2=wavread('高通.wav');%读出高通后信号

sound(x2);%播放高通后信号

执行如下:

(3)设计带通滤波器:

程序代码如下:

Fs=8000;

x=wavread('C:

\MATLAB7\work\CEG和弦音.wav',[10008000]);%读出和弦音信号

t=(0:

[8000-1000])/Fs;%计算从1000到8000点的时间

y=fft(x,5000);%对和弦音信号进行FFT运算

f=Fs*(0:

2499)/5000;

Wp2=[2*1200/Fs2*3000/Fs];%在1的dB衰减处的边带频率

Ws2=[2*1000/Fs2*3200/Fs];%在衰减为100dB处的边带频率

Rp2=1;%通带损耗不大于1dB

Rs2=100;%阻带衰减不小于100dB

[N2,Wn2]=cheb1ord(Wp2,Ws2,Rp2,Rs2);%估计切贝雪夫滤波器阶数

[num2,den2]=cheby1(N2,Rp2,Wn2);%切贝雪夫滤波器系统函数

[h2,w2]=freqz(num2,den2);%计算频谱响应

figure(4);%第四个图形

subplot(3,1,1);%在窗口中生成3行1列共3个子图,当前激活第1个子图

plot(abs(h2));grid;%画出幅值图

xlabel('\omega/\pi');%在xabel中显示归一化

/

ylabel('振幅');%定义图形纵坐标为''振幅'

title('契比雪夫Ⅰ型带通滤波器的幅频响应');%定义标题

f3=filter(num2,den2,x);%滤波

y3=fft(f3,8000);%作fft变换

subplot(3,1,2);%在窗口中生成3行1列共3个子图,当前激活第2个子图

plot(f3);%做原始语音信号的时域图形

title('带通滤波后的信号');%定义标题

xlabel('时间');%定义图形横坐标为'时间’

ylabel('幅值');%定义图形纵坐标为''幅值'

subplot(3,1,3);%在窗口中生成3行1列共3个子图,当前激活第2个子图

plot(abs(y3(1:

4000)));%画出频谱图像

title('带通滤波后的信号频谱')%定义标题

xlabel('频率');%定义图形横坐标为'频率’

ylabel('幅值');%定义图形纵坐标为''幅值'

wavwrite(f3,'带通.wav');%写出过滤后带通信号

x3=wavread('带通.wav');%读出过滤后带通信号

sound(x3);%播放带通后信号

执行如下:

4.3.对滤波后的音频信号再滤出三个能量最集中的频簇

3、在低、中、高三个频带中,各滤出三个能量最集中的频簇,显示滤波后信号的时域和频域曲线。

程序代码如下:

(1)低通能量最集中的频簇:

1、x1=wavread('低通.wav');%读取低通后信号

sound(x1);%播放低通后信号

Wp1=[2*500/Fs2*600/8000];

Ws1=[2*400/Fs2*800/8000];

Rp1=1;%通带损耗不大于1dB

Rs1=100;%阻带衰减不小于100dB

[N1,Wn1]=cheb1ord(Wp1,Ws1,Rp1,Rs1);

[num1,den1]=cheby1(N1,Rp1,Wn1);

[h1,w1]=freqz(num1,den1);

figure(4);%第四个图形

subplot(3,1,1);%在窗口中生成3行1列共3个子图,当前激活第1个子图

plot(w1/pi,abs(h1));grid;%打网格

xlabel('\omega/\pi');%在xabel中显示归一化

/

ylabel('振幅(幅值)');%定义图形纵坐标为''幅值'

title('契比雪夫Ⅰ型低通滤波器的幅频响应');

f1=filter(num1,den1,x1);%滤波

y1=fft(f1,8000);%作fft变换

subplot(3,1,2);%在窗口中生成3行1列共3个子图,当前激活第2个子图

plot(f1);%做原始语音信号的时域图形

title('低通能量集中后信号');

xlabel('时间');%定义图形横坐标为'时间’

ylabel('幅值');%定义图形纵坐标为''幅值'

subplot(3,1,3);%在窗口中生成3行1列共3个子图,当前激活第3个子图

plot(abs(y1(1:

4000)));%画出频谱图像

title('低通的集中能量语音信号频谱')%定义标题

xlabel('频率');%定义图形横坐标为'频率’

ylabel('幅值');%定义图形纵坐标为''幅值'

wavwrite(f1,'低通能量集中1.wav');%写出信号

x21=wavread('低通能量集中1.wav');%读出信号

sound(x21);%播放出信号

执行如下:

2、x2=wavread('低通.wav');%读取低通后信号

sound(x2);%播放低通后信号

Wp2=[2*700/80002*800/8000];

Ws2=[2*500/80002*1000/8000];

Rp2=1;

Rs2=100;

[N2,Wn2]=cheb1ord(Wp2,Ws2,Rp2,Rs2);

[num2,den2]=cheby1(N2,Rp2,Wn2);

[h2,w2]=freqz(num2,den2);

figure(4);

subplot(3,1,1);%在窗口中生成3行1列共3个子图,当前激活第1个子图

plot(w2/pi,abs(h2));grid;%打网格

xlabel('\omega/\pi');%在xabel中显示归一化

/

ylabel('振幅');%定义图形纵坐标为''振幅'

title('契比雪夫Ⅰ型低通滤波器的幅频响应');

f2=filter(num2,den2,x2);%滤波

y2=fft(f2,8000);

subplot(3,1,2);%在窗口中生成3行1列共3个子图,当前激活第2个子图

plot(f2);

title('低通能量集中后信号');

xlabel('时间');%定义图形横坐标为'时间’

ylabel('幅值');%定义图形纵坐标为''幅值'

subplot(3,1,3);%在窗口中生成3行1列共3个子图,当前激活第3个子图

plot(abs(y2(1:

4000)));%画出频谱图像

title('低通的集中能量语音信号频谱')

xlabel('频率');%定义图形横坐标为'频率’

ylabel('幅值');%定义图形纵坐标为''幅值'

wavwrite(f2,'低通能量集中2.wav');%写出信号

x31=wavread('低通能量集中2.wav');%读出信号

sound(x31);%播放出信号

执行如下:

3、x3=wavread('低通.wav');%读取低通后信号

sound(x3);%播放低通后信号

Wp3=[2*800/80002*900/8000];

Ws3=[2*600/80002*1200/8000];

Rp3=1;

Rs3=100;

[N3,Wn3]=cheb1ord(Wp3,Ws3,Rp3,Rs3);

[num3,den3]=cheby1(N3,Rp3,Wn3);

[h3,w3]=freqz(num3,den3);

figure(4);

subplot(3,1,1);%在窗口中生成3行1列共3个子图,当前激活第1个子图

plot(w3/pi,abs(h3));grid;%打网格

xlabel('\omega/\pi');%在xabel中显示归一化

/

ylabel('振幅');%定义图形纵坐标为''振幅

title('契比雪夫Ⅰ型低通滤波器的幅频响应');

f3=filter(num3,den3,x3);%滤波

y3=fft(f3,8000);%做fft变换

subplot(3,1,2);%在窗口中生成3行1列共3个子图,当前激活第2个子图

plot(f3);

title('低通能量集中后信号');

xlabel('时间');%定义图形横坐标为'时间’

ylabel('幅值');%定义图形纵坐标为''幅值

subplot(3,1,3);%在窗口中生成3行1列共3个子图,当前激活第3个子图

plot(abs(y3(1:

4000)));

title('低通的集中能量语音信号频谱')

xlabel('频率');%定义图形横坐标为'频率’

ylabel('幅值');%定义图形纵坐标为''幅值

wavwrite(f3,'低通能量集中3.wav');

x41=wavread('低通能量集中3.wav');

sound(x41);%播放出语音

执行如下:

(2)高通能量最集中的频簇:

1、x1=wavread('高通.wav');%读出高通后信号

sound(x1);%播放高通后信号

Wp1=[2*3300/80002*3500/8000];

Ws1=[2*3100/80002*3700/8000];

Rp1=1;

Rs1=100;

[N1,Wn1]=cheb1ord(Wp1,Ws1,Rp1,Rs1);

[num1,den1]=cheby1(N1,Rp1,Wn1);

[h1,w1]=freqz(num1,den1);

figure(4);

subplot(3,1,1);%在窗口中生成3行1列共3个子图,当前激活第1个子图

plot(w1/pi,abs(h1));grid;

xlabel('\omega/\pi');%在xabel中显示归一化

/

ylabel('振幅');%定义图形纵坐标为''幅值

title('契比雪夫Ⅰ型高通滤波器的幅频响应');

f1=filter(num1,den1,x1);%滤波

y1=fft(f1,8000);%作fft变换

subplot(3,1,2);%在窗口中生成3行1列共3个子图,当前激活第2个子图

plot(f1);

title('高通能量集中信号');%定义标题

xlabel('时间');%定义图形横坐标为'时间’

ylabel('幅值');%定义图形纵坐标为''幅值

subplot(3,1,3);%在窗口中生成3行1列共3个子图,当前激活第3个子图

plot(abs(y1(1:

4000)));

title('高通能量集中的语音信号频谱')%定义标题

xlabel('频率');%定义图形横坐标为'频率’

ylabel('幅值');%定义图形纵坐标为''幅值

wavwrite(f1,'高通后高通能量集中1.wav');

x22=wavread('高通后高通能量集中1.wav');

sound(x22);%播放出语音

执行如下:

2、x2=wavread('高通.wav');%读出高通后信号

sound(x2);%播放高通后信号

Wp2=[2*3000/80002*3200/8000];

Ws2=[2*2800/80002*3400/8000];

Rp2=1;

Rs2=100;

[N2,Wn2]=cheb1ord(Wp2,Ws2,Rp2,Rs2);

[num2,den2]=cheby1(N2,Rp2,Wn2);

[h2,w2]=freqz(num2,den2);

figure(4);

subplot(3,1,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 中职中专

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1