离散序列怎么求幅频特性和相频特性 matlab

比如序列为x1=[1,1,1,1],x2=a^n(0<a<1,n>=0);x3=[1];
怎么用matlab画出上面3个序列的幅频特性和相频特性,求大神指导下

幅频特性和相频特性一般描述的是某一数字信号系统的性质,例如我们说滤波器网络的幅频特性。可以根据系统函数在S平面的零极点分布绘制幅频特性和相频特性曲线。
楼主的问题应该有问题,离散序列可以绘制的是幅度和相位的波形。MATLAB中分别用
abs(x)和(180/pi)*angle(x)来求,然后用stem杆图绘制。给你一道例题吧:
产生复数值信号:
x(n)=e^(-0.1+j0.3)n,-10≤n≤10,画出其幅度、相位的波形
解:
n=[-10:10];alpha=-0.1+0.3j;
x=exp(alpha*n);
subplot(2,1,1);stem(n,abs(x));title('振幅');xlabel('n')
subplot(2,1,2);stem(n,(180/pi)*angle(x));title('相位');xlabel('n')追问

这个只要以上三个序列的,实验要求但不会弄啊

追答

很简单,按照例题的套路。比如序列x1就是这么做
>>n=[0:3];
>> x1=[1,1,1,1];
>> subplot(2,1,1);stem(n,abs(x1));title('振幅');xlabel('n');
>> subplot(2,1,2);stem(n,(180/pi)*angle(x1));title('相位');xlabel('n')
序列x3就稍微变化一下就好,至于序列x2嘛,我的建议是取a=0.1和0.5做两个吧,找到大体趋势就好。

追问

不对啊,

结果是上面的才对哦

追答

哦 要先做傅里叶变换,原来这样,不好意思啦,我还以为简单画序列的时域幅度和相位就好。sorry

 

 

n=[0:3];

 x1=[1,1,1,1];

 k=-1000:1000;w=(pi/500)*k;

 X=x1*(exp(-j*pi/500)).^(n'*k);

 magX=abs(X);angX=angle(X);

 subplot(2,2,1);

 plot(w/pi,magX);grid on 

 xlabel('以pi为单位的频率 ');title('幅度部分');ylabel('幅度')

 subplot(2,2,2);

 plot(w/pi,angX);grid on

 xlabel('以pi为单位的频率 ');title('相角部分' );ylabel('弧度')

追问

哦,知道了,谢谢!再问下:频谱为XW=1/(1-0.7*e^(-j(w-1))),对其进行逆变换怎么用matlab实现。(最近考试忘了回复了,sorry下)

追答

N=20;
w=2*pi/N;
Xk=1/(1-0.7*exp(-j*(w-1)));
n=0:(N-1);k=0:(N-1);
x=(Xk*exp(j*2*pi/N).^(n'*k))/N;% %离散傅里叶逆变换
stem(n,abs(x)); %显示逆变换结果
title('IDFT|X(k)|');
小弟不才,不确定是不是这么做。最近偶也要考试,话说这个逆变换N的取值不同,反变换得到的函数是不同的,但只影响系数,不影响函数形状吧。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-08-09
用abs和angle:
clear,clc,close all;
w=-10:0.001:10;
f=2.23*(1./(2+i*w)-1./(5+i*w))
am=abs(f);
ang=angle(f);
subplot(2,1,1);plot(w,am);title('幅频响应');
subplot(2,1,2);plot(w,ang);title('相频响应');
相似回答