计算如下离散LTI 系统的单位样值响应的 DTFT变换后用 MATLAB的freqz()函数绘制其幅频响应和相频响应,N取3-10的数。 (1)h1(n)=1,n=-N,…,0,1,…N; (2) h2 (n) =1,n=0,1,…,N; (3) h3 (n) =I,n=-N,-N+1,•••,-1,0; (4)分析上述三个结果之问的关系 (5) hA (n) =cos(nπ/6),n=0,1,2,•••,11;
时间: 2023-09-14 15:12:05 浏览: 165
matlab DTFT和频率响应实验
好的,我会根据您的要求进行回答,下面是我对您的问题的回答:
1. 对于离散LTI系统的单位样值响应的DTFT变换,可以用以下公式进行计算:
$$H(e^{j\omega})=\sum_{n=-\infty}^{\infty}h(n)e^{-j\omega n}$$
其中,$h(n)$为系统的单位样值响应,$\omega$为频率参数。
2. 对于给定的$h1(n)$,可以得到其DTFT变换为:
$$H_1(e^{j\omega})=\frac{\sin((N+\frac{1}{2})\omega)}{\sin(\frac{\omega}{2})}$$
然后,我们可以用MATLAB的freqz()函数来绘制其幅频响应和相频响应,代码如下:
```
N = 3:10;
for i = 1:length(N)
n = -N(i):N(i);
h1 = [fliplr(1:n(1)-1),1,n(2:end)];
w = -pi:pi/1000:pi;
H1 = sin((N(i)+1/2)*w)./sin(w/2);
[H1_mag,H1_phase] = freqz(h1,1,w);
figure;
subplot(2,1,1);
plot(w,abs(H1),'r-',w,abs(H1_mag),'b--');
xlabel('Frequency (\omega)');
ylabel('Magnitude');
legend('DTFT','freqz()');
title(['Magnitude Response of h1(n) (N=',num2str(N(i)),')']);
subplot(2,1,2);
plot(w,angle(H1),'r-',w,angle(H1_phase),'b--');
xlabel('Frequency (\omega)');
ylabel('Phase (rad)');
legend('DTFT','freqz()');
title(['Phase Response of h1(n) (N=',num2str(N(i)),')']);
end
```
3. 对于给定的$h2(n)$,可以得到其DTFT变换为:
$$H_2(e^{j\omega})=\sum_{n=0}^{N}e^{-j\omega n}$$
然后,我们可以用MATLAB的freqz()函数来绘制其幅频响应和相频响应,代码如下:
```
N = 3:10;
for i = 1:length(N)
n = 0:N(i);
h2 = [1,zeros(1,N(i)-length(n))];
w = -pi:pi/1000:pi;
H2 = (1-exp(-j*(N(i)+1)*w))./(1-exp(-j*w));
[H2_mag,H2_phase] = freqz(h2,1,w);
figure;
subplot(2,1,1);
plot(w,abs(H2),'r-',w,abs(H2_mag),'b--');
xlabel('Frequency (\omega)');
ylabel('Magnitude');
legend('DTFT','freqz()');
title(['Magnitude Response of h2(n) (N=',num2str(N(i)),')']);
subplot(2,1,2);
plot(w,angle(H2),'r-',w,angle(H2_phase),'b--');
xlabel('Frequency (\omega)');
ylabel('Phase (rad)');
legend('DTFT','freqz()');
title(['Phase Response of h2(n) (N=',num2str(N(i)),')']);
end
```
4. 对于给定的$h3(n)$,可以得到其DTFT变换为:
$$H_3(e^{j\omega})=e^{-jN\omega}\sum_{n=-N}^{-1}e^{j\omega n}$$
$$=\frac{e^{-jN\omega}-1}{e^{-j\omega}-1}$$
然后,我们可以用MATLAB的freqz()函数来绘制其幅频响应和相频响应,代码如下:
```
N = 3:10;
for i = 1:length(N)
n = -N(i):N(i);
h3 = [zeros(1,N(i)-length(n)),fliplr(1:n(end-1))];
w = -pi:pi/1000:pi;
H3 = exp(-j*N(i)*w).*(exp(j*w*N(i))-1)./(exp(j*w)-1);
[H3_mag,H3_phase] = freqz(h3,1,w);
figure;
subplot(2,1,1);
plot(w,abs(H3),'r-',w,abs(H3_mag),'b--');
xlabel('Frequency (\omega)');
ylabel('Magnitude');
legend('DTFT','freqz()');
title(['Magnitude Response of h3(n) (N=',num2str(N(i)),')']);
subplot(2,1,2);
plot(w,angle(H3),'r-',w,angle(H3_phase),'b--');
xlabel('Frequency (\omega)');
ylabel('Phase (rad)');
legend('DTFT','freqz()');
title(['Phase Response of h3(n) (N=',num2str(N(i)),')']);
end
```
5. 对于给定的$hA(n)$,可以用MATLAB的freqz()函数直接绘制其幅频响应和相频响应,代码如下:
```
n = 0:11;
hA = cos(n*pi/6);
w = -pi:pi/1000:pi;
[H_mag,H_phase] = freqz(hA,1,w);
figure;
subplot(2,1,1);
plot(w,abs(H_mag));
xlabel('Frequency (\omega)');
ylabel('Magnitude');
title('Magnitude Response of hA(n)');
subplot(2,1,2);
plot(w,angle(H_phase));
xlabel('Frequency (\omega)');
ylabel('Phase (rad)');
title('Phase Response of hA(n)');
```
6. 分析上述三个结果之间的关系,可以发现:$h1(n)$和$h2(n)$的DTFT变换都是周期性的,而$h3(n)$的DTFT变换是非周期性的。此外,$h1(n)$的幅频响应在$\omega=0$处存在一个零点,而$h2(n)$的幅频响应在$\omega=0$处不存在零点。这些特点反映出各自对应的系统的性质和特点。
阅读全文