信号频域分析研究性学习报告1.docx
《信号频域分析研究性学习报告1.docx》由会员分享,可在线阅读,更多相关《信号频域分析研究性学习报告1.docx(19页珍藏版)》请在冰豆网上搜索。
信号频域分析研究性学习报告1
信号与系统的频域分析专题研讨
通信1303张玅琦13211073
【目的】
(1)加深对信号与系统频域分析基本原理和方法的理解。
(2)学会利用信号抽样的基本原理对信号抽样过程中出现的一些现象的进行分析。
(3)通过实验初步了解频谱近似计算过程中产生误差的原因。
(4)学会用调制解调的基本原理对系统进行频域分析。
【研讨题目】
1.信号的抽样
频率为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)的实验结果,解释所出现的现象。
【题目分析】
(1)正弦信号是一种机械波的模拟,是由振动产生的,因此,可以通过sound函数播放出声音。
(2)要想做到抽样1秒钟,就必须注意k的取值范围,即k的取值范围为0~8000。
(3)用stem函数画出抽样后离散的点。
【比较研究】
利用系统的Help,阅读函数sound和wavplay的使用方法。
连续播放两段音频信号,比较函数sound和wavplay的异同。
【仿真程序】
k=0:
1:
8000;
f0=input('f0=');
fs=8000;
x=sin(2*pi*f0/fs*k);
sound(x,fs);
subplot(211)
stem(k,x)
axis([020-11])
subplot(212)
plot(k,x)
axis([020-11])
【仿真结果】
2KHz
2.2KHz
2.4KHz
2.6KHz
现象:
随着声音频率的变大,声音在逐渐变得尖细且高。
5.4KHz
5.6KHz
5.8KHz
随着声音频率的变大,声音逐渐变得粗犷且低沉
【结果的理论分析和解释】
频率同在增大,产生两个不同的现象,是因为离散时域信号的频域是以2
为周期的,在抽样频率较小时,在频域上会出现频域的非零值叠加(即混叠),此时随着抽样频率的增加,叠加部分减少,并且使频谱向
的奇数倍移动,高频分量增加,声音变得尖一些;而在抽样频率接近信号的频率时,由于频谱的周期性,此时频谱是会随着抽样频率的增加向
的偶数倍方向移动,高频分量减少,声音变得低沉。
只有符合时域抽样定理的抽样,才不会发生混叠,即抽样的最小频率为2fm。
2.连续时间信号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];%增添频率点对应的频谱
【题目分析】
对连续时间函数的近似傅里叶变换。
先要定义ctft函数,然后调用。
【仿真程序】
(2)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)频域有效宽度为
约为1.58,
为175HZ,
,所以两者之间的经验公式为:
(5)
男声
[x1,fs,bits]=wavread('F:
\man.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:
\woman.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('频谱')
(6)运用ctft近似计算信号频谱时,是以一定的抽样频率对原信号进行了抽取,信号由连续信号变成离散信号,如果抽样频率不合适就会造成信号混叠而失真。
在不知道信号表达式的情况下得出的近似频谱与真实值之间存在误差。
所有如果想减小误差,则Fs和N要尽可能大。
【仿真结果】
(2)
(5)男声
女声
【结果分析】
从仿真结果中看出误差很小,但也存在一定的误差。
分析可能的原因:
软件计算过程中难免会出现小数点等得误差。
3.幅度调制和连续信号的Fourier变换
本题研究莫尔斯码的幅度调制与解调。
本题中信号的形式为
i.
其中信号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)字母B可用莫尔斯码表示为b=[dashdotdotdot],画出字母B莫尔斯码波形;因为dashdot在ctftmod中,所以本问用load导入ctftmod,再用stem命令来实现字母B莫尔斯码波形的绘制即可。
(2)用freqs(bf,af,w)画出系统的幅度响应;与
(1)类似,bf、af都在ctftmod中,用load命令导入;freqs是专门对连续系统频率响应H(jw)进行分析的函数,可以求出系统频率响应的数值解,并可绘出系统的幅频及相频响应曲线。
(3)利用lsim求出信号dash通过由sys=tf(bf,af)定义的系统响应,解释你所获得的结果;函数lsim()能对LTI连续系统的响应进行仿真,能绘制连续系统在指定的任意时间范围内系统响应的时域波形图,还能求出连续系统在指定的任意时间范围内系统响应的数值解。
【仿真程序】
(1)字母B可用莫尔斯码表示为b=[dashdotdotdot],画出字母B莫尔斯码波形;
loadF:
\ctftmod;
b=[dashdotdotdot];
plot(b);
title('B莫尔斯码波形');
(2)用freqs(bf,af,w)画出由bf和af定义的系统的幅度响应;
loadF:
\ctftmod;
w=linspace(0,4*pi,200);
freqs(bf,af,w)
(3)利用lsim求出信号dash通过由sys=tf(bf,af)定义的系统响应,解释你所获得的结果;
Untiled1.m
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');
结果分析:
可以从图中看出,原信号和输出信号基本一致,输出信号在幅度上有所改变,在时间上有些延迟。
这说明这2个信号都是由低频分量组成的,它们的傅里叶变换的频率范围都大致位于给出的低通滤波器的通带之内。
(4)用解析法推导出下列信号的Fourier变换
(5)利用(4)中的结果,设计一个从x(t)中提取信号m1(t)的方案,画出m1(t)的波形并确定其所代表的字母;
由信号系统所学知识:
已知
要求
只需要对该x(t)的频谱进行调制,然后使用低通滤波器即可,2题所做的系统就可以当作一个低通滤波器使用。
loadF:
\ctftmod;
x1=x.*cos(2*pi*f1*t);
sys=tf(bf,af);
lsim(sys,x1,t);
(6)对信号m2(t)和m3(t)重复(5)。
请问Agent008
Thefutureoftechnologyliesin···
loadF:
\ctftmod;
x2=x.*sin(2*pi*f2*t);
sys=tf(bf,af);
subplot(2,1,1)
lsim(sys,x2,t);
x3=x.*sin(2*pi*f1*t);
sys=tf(bf,af);
subplot(2,1,2)
lsim(sys,x3,t);
【仿真结果】
(1)字母B可用莫尔斯码表示为b=[dashdotdotdot],画出字母B莫尔斯码波形;
(2)用freqs(bf,af,w)画出由bf和af定义的系统的幅度响应;
(3)利用lsim求出信号dash通过由sys=tf(bf,af)定义的系统响应,解释你所获得的结果;
结果分析:
可以从图中看出,原信号和输出信号基本一致,输出信号在幅度上有所改变,在时间上有些延迟。
这说明这2个信号都是由低频分量组成的,它们的傅里叶变换的频率范围都大致位于给出的低通滤波器的通带之内。
(5)利用(4)中的结果,设计一个从x(t)中提取信号m1(t)的方案,画出m1(t)的波形并确定其所代表的字母;
(6)对信号m2(t)和m3(t)重复(5)。
请问Agent008
Thefutureoftechnologyliesin···
结果分析:
d(-。
。
)s(。
。
。
)p(。
--。
)
最后的密码是DSP