第二次 频域分析研究性学习报告.docx
《第二次 频域分析研究性学习报告.docx》由会员分享,可在线阅读,更多相关《第二次 频域分析研究性学习报告.docx(15页珍藏版)》请在冰点文库上搜索。
第二次频域分析研究性学习报告
信号与系统的频域分析专题研讨
【目的】
(1)加深对信号与系统频域分析基本原理和方法的理解。
(2)学会利用信号抽样的基本原理对信号抽样过程中出现的一些现象的进行分析。
(3)通过实验初步了解频谱近似计算过程中产生误差的原因。
(4)学会用调制解调的基本原理对系统进行频域分析。
【研讨题目】
1.分析男女生信号的频谱
(1)采集wav格式的男女生语音信号。
(2)对所采集的语音信号进行频谱分析。
提示:
可以根据傅里叶变换公式,利用数值积分计算;也可以利用MATLAB提供的函数fft计算。
仿真程序:
女声信号
[m,F,nbits]=wavread('F:
\PrettyBoy.wav');
sound(m,F,nbits);
N=length(F);
Y=fft(F,N);
subplot(2,1,1);
plot(m);
subplot(2,1,2);
plot(abs(m));
仿真结果:
仿真程序:
男声信号
[m,F,nbits]=wavread('F:
\juhuatai.wav');
sound(m,F,nbits);
N=length(F);
Y=fft(F,N);
subplot(2,1,1);
plot(m);
subplot(2,1,2);
plot(abs(m));
仿真结果:
频谱分析:
从采集到的女声和男声信号中,虽然不太明显,但我们还是能够看到一点男女生声音频率的差别:
女声的频率比男声高一点。
2.信号的抽样
频率为f0Hz的正弦信号可表示为
按抽样频率fsam=1/T对x(t)抽样可得离散正弦序列x[k]
在下面的实验中,取抽样频率fsam=8kHz。
(1)对频率为2kHz,2.2kHz,2.4kHz和2.6kHz正弦信号抽样1秒钟,利用MATLAB函数sound(x,fsam)播放这四个不同频率的正弦信号。
(2)对频率为5.4kHz,5.6kHz,5.8kHz和6.0kHz正弦信号抽样1秒钟,利用MATLAB函数sound(x,fsam)播放这四个不同频率的正弦信号。
(3)比较
(1)和
(2)的实验结果,解释所出现的现象。
【题目分析】
【信号抽样过程中频谱变化的规律】仿真程序;
f1=2000;
fsam=8000;
k=0:
1:
8000;
x1=sin(2*pi*k*f1/fsam);
sound(x1,fsam);
f2=2200;
fsam=8000;
k=0:
1:
8000;
x2=sin(2*pi*k*f2/fsam);
sound(x2,fsam);
f3=2400;
fsam=8000;
k=0:
1:
8000;
x3=sin(2*pi*k*f3/fsam);
sound(x3,fsam);
f4=2600;
fsam=8000;
k=0:
1:
8000;
x4=sin(2*pi*k*f4/fsam);
sound(x4,fsam);
f5=5400;
fsam=8000;
k=0:
1:
8000;
x5=sin(2*pi*k*f5/fsam);
sound(x5,fsam);
f6=5600;
fsam=8000;
k=0:
1:
8000;
x6=sin(2*pi*k*f6/fsam);
sound(x6,fsam);
f7=5800;
fsam=8000;
k=0:
1:
8000;
x7=sin(2*pi*k*f7/fsam);
sound(x7,fsam);
f8=6000;
fsam=8000;
k=0:
1:
8000;
x8=sin(2*pi*k*f8/fsam);
sound(x8,fsam);
分析:
改变频率的值,听到的正弦信号的声音会随之改变,频率在2kHz附近,频率越高,声音越细越尖,7kHz附近也是如此,但是7kHz附近的声音明显比2kHz的声音低沉。
3.连续时间信号Fourier变换的数值近似计算
计算连续信号频谱是对信号和系统进行频域分析的基础,由于实际信号大多无简单的解析表达式,所以要用数值方法进行近似计算。
本题要求对频谱近似计算中误差的原因进行初步的分析,希望能在计算实际信号频谱的近似计算中起一定的指导作用。
若信号x(t)的非零值在
区间,则可用下面提供的函数ctft1或ctft2近似计算其频谱。
函数ctft的调用形式为
[X,f]=ctft1(x,fsam,N)
[X,f]=ctft2(x,fsam,N)
其中调用变量x存放信号x(t)的抽样值,fsam表示对连续信号x(t)的抽样频率(Hz),N表示用DFT进行近似计算时DFT的点数,为了能高效的进行计算,N最好取2的整数次幂,如512,1024等。
返回变量X是计算出的信号频谱的抽样值,f(单位Hz)表示对应的频率抽样点。
返回变量X一般是复数,可用函数abs(X)计算出幅度谱,函数angle(X)计算出相位谱。
(1)阅读程序ctft2,叙述该程序的基本原理。
该程序中有一处需要产生一个大的2维矩阵,指出该行程序,并评价该方法的优缺点。
(2)取抽样频率fsam=100Hz,信号抽样长度N=1024,分别用两个子程序近似计算信号
的频谱,比较两种方法的计算时间和误差;(可用tic,toc计算程序运行时间)
(3)若将信号的时域有效宽度
定义为
其中
表示信号在时域的最大值。
试分析时域有效宽度
对近似计算的影响。
给出一个由信号时域有效宽度
估计近似计算中所需信号长度
的经验公式。
(4)定义信号频域有效宽度
为
其中
表示信号在频域的最大值。
给出一个由信号频域有效宽度
估计近似计算中所需抽样频率
的经验公式。
(5)用计算机录分别一段男生和女生的语音信号,计算其频谱并比较其特点。
(6)讨论:
计算误差产生的主要原因?
如果不知信号的解析表达式,如何分析计算误差?
%近似计算连续信号频谱的函数
function[X,f]=ctft1(x,Fs,N)
X=fftshift(fft(x,N))/Fs;
f=-Fs/2+(0:
N-1)*Fs/N;
function[X,f]=ctft2(x,Fs,N)
tk=(0:
N-1)/Fs;%时域抽样点
dF=Fs/N;%频域抽样间隔
fm=(0:
N/2)*dF;%频域抽样点
X=x*exp(-j*2*pi*tk'*fm)/Fs;%近似计算信号频谱
f=[-fliplr(fm(2:
end))fm];%增添负频率点
X=[-conj(fliplr(X(2:
end)))X];%增添频率点对应的频谱
【题目分析】
1.该程序先计算出x(t)的频谱,输入频域抽样的抽样限制,运用函数ctft2。
程序:
f=[-fliplr(fm(2:
end))fm];
X=[-conj(fliplr(X(2:
end)))X];
的作用是产生一个频率点和频率点对应的频谱的二维矩阵。
【仿真结果】
【仿真程序】
)ctft1.m
function[X,f]=ctft1(x,Fs,N)
X=fftshift(fft(x,N))/Fs;
f=-Fs/2+(0:
N-1)*Fs/N;
Untiled2.m
k=0:
0.01:
15;
x=exp(-1*k);
[X,f]=ctft1(x,100,1024);
figure
(1);
subplot(2,1,1);
plot(f,abs(X));
title('abs(X)');
subplot(2,1,2);
plot(f,angle(X));
title('angle(X)');
P=1./(1+j*f);
Untiled3.m
subplot(2,1,1);
plot(f,abs(P));
xlabel('f(Hz)');
subplot(2,1,2);
plot(f,angle(P));
xlabel('f(Hz)');
figure(3);
subplot(2,1,1);
plot(f,abs(P)-abs(X));
title('幅度误差');
axis([-5,5,-0.01,0.02])
subplot(2,1,2);
plot(f,angle(P)-angle(X));
title('相位误差');
(4)x(t)频域有效宽度为f∆
女声信号分析:
[x1,fs,bits]=wavread('F:
\PrettyBoy.wav');
[X,f]=ctft1(x1,100,1024);
figure
(1);
subplot(3,1,1);
plot(f,abs(X));
title('幅度');
subplot(3,1,2);
plot(f,angle(X));
title('相位');
subplot(3,1,3);
plot(f,X);
title('频谱');
男声信号分析:
[x1,fs,bits]=wavread('F:
\juhuatai.wav');
[X,f]=ctft1(x1,100,1024);
figure
(1);
subplot(3,1,1);
plot(f,abs(X));
title('幅度');
subplot(3,1,2);
plot(f,angle(X));
title('相位');
subplot(3,1,3);
plot(f,X);
title('频谱');女声男声
【结果分析】
女生的声音频谱明显要高于男生。
【自主学习内容】
自主学习函数ctft的用法
【阅读文献】
陈后金,胡健,薛健.信号与系统(第二版)[M].北京:
清华大学出版社,北京交通大学出版社,2005.
【发现问题】(专题研讨或相关知识点学习中发现的问题):
【问题探究】
4.幅度调制和连续信号的Fourier变换
本题研究莫尔斯码的幅度调制与解调。
本题中信号的形式为
其中信号x(t)由文件ctftmod.mat定义(该文件在硬盘上),可用命令Loadctftmod将文件ctftmod.mat定义的变量装入系统内存。
运行命令Loadctftmod后,装入系统的变量有
afbfdashdotf1f2tx
其中
bfaf:
定义了一个连续系统H(s)的分子多项式和分母多项式。
可利用freqs(bf,af,w)求出该系统的频率响应,也可用sys=tf(bf,af)得到系统的模型,从而用lsim求出信号通过该系统的响应。
dashdot:
给出了莫尔斯码中的基本信号dash和dot的波形
f1f2:
载波频率
t:
信号x(t)的抽样点
x:
信号x(t)的在抽样点上的值
信号x(t)含有一段简单的消息。
Agend007的最后一句话是
Thefutureoftechnologyliesin···
还未说出最后一个字,Agend007就昏倒了。
你(Agend008)目前的任务就是要破解Agend007的最后一个字。
该字的信息包含在信号x(t)中。
信号x(t)具有式
(1)的形式。
式中的调制频率分别由变量f1和f2给出,信号m1(t),m2(t)和m3(t)对应于字母表中的单个字母,这个字母表已用国际莫尔斯码进行编码,如下表所示:
A·-
H····
O---
V···-
B-···
I··
P·--·
W·--
C-·-·
J·---
Q--·-
X-··-
D-··
K-·-
R·-·
Y-·--
E·
L·-··
S···
Z--··
F··-·
M--
T-
G--·
N-·
U··-
(1)字母B可用莫尔斯码表示为b=[dashdotdotdot],画出字母B莫尔斯码波形;
(2)用freqs(bf,af,w)画出由bf和af定义的系统的幅度响应;
(3)利用lsim求出信号dash通过由sys=tf(bf,af)定义的系统响应,解释你所获得的结果;
(4)用解析法推导出下列信号的Fourier变换
(5)利用(4)中的结果,设计一个从x(t)中提取信号m1(t)的方案,画出m1(t)的波形并确定其所代表的字母;
(6)对信号m2(t)和m3(t)重复(5)。
请问Agent008
Thefutureoftechnologyliesin···
【题目分析】
(1)程序如下:
>>clear
>>loadctftmod
>>whos
NameSizeBytesClassAttributes
af1x648double这个是我们首先把那个在文件里的
bf1x648double那个ctftmod.mat文件复制到你
dash1x200016000double自己的电脑里面的matlab文件里面
dot1x200016000double然后你就可以在软件中调用
f11x18doubleloadctftmod了,结果如图。
其中
f21x18doublef1和f2是载波频率,f1=200hz.
t1x800064000doublef2=400hz,af和bf系统频率相应
x1x800064000double对应的分子分母的系数,
plot(dash)结果如下:
plot(dot)结果为:
b=[dashdotdotdot];plot(b)结果为
(2)freqs(bf,af)结果为:
(3)ydash=lsim(bf,af,dash,t(1:
length(dash)));
ydot=lsim(bf,af,dot,t(1:
length(dot)));subplot(2,1,1);plot(t(1:
length(dash)),dash,t(1:
length(dash)),ydash,'--');legend('dash','ydash')>>subplot(2,1,2);plot(t(1:
length(dot)),dot,t(1:
length(dot)),ydot,'--');legend('dot','ydash')'
结果为:
上
下
从波形上看输入和输出在幅度上有一定的差别,但不大;并且输出在时间轴上也有一定的时移,并且可以看出都是低频的信号,且都在低通滤波器通带范围之内。
角度差180。
005
(5),m1=lsim(bf,af,x.*cos(2*pi*f1*t),t);plot(t,m1);这个是提取的程序,结果为:
(6)同理,可以将其他的程序函数提出来!
改变的就只是频率而已,和三角函数而已了!
M1=lsim(bf,af,x.*sin(2*pi*f1*t),t);plot(t,m1);
M1=lsim(bf,af,x.*cos(2*pi*f2*t),t);plot(t,m1);
M1=lsim(bf,af,x.*sin(2*pi*f2*t),t);plot(t,m1);
【方案设计】
【仿真结果】
【结果分析】
【自主学习内容】
【阅读文献】
【发现问题】(专题研讨或相关知识点学习中发现的问题):
【问题探究】
【仿真程序】