《DSP using MATLAB》示例Example5.8

代码:
n = [0:1:99]; x = cos(0.48*pi*n) + cos(0.52*pi*n);
n1 = [0:1:9]; y1 = x(1:1:10); % N = 10 figure('NumberTitle', 'off', 'Name', 'Exameple5.8 x sequence')
set(gcf,'Color','white');
subplot(3,1,1); stem(n1,y1); title('signal x(n), 0<= n <=9, N = 10'); axis([0,10,-2.5,2.5]);
xlabel('n'); ylabel('x(n)'); grid on; Y1_DFT = dft(y1,10); % DFT of y1 magY1_DFT = abs(Y1_DFT(1:1:6));
%magY1_DFT = abs(Y1_DFT);
%phaY1_DFT = angle(Y1_DFT)*180/pi % degrees
phaY1_DFT = angle(Y1_DFT(1:1:6))*180/pi % degrees
%realX_DFT = real(X_DFT); imagX_DFT = imag(X_DFT);
%angX_DFT = angle(X_DFT); % radias k1 = 0:1:5; w1 = 2*pi/10*k1; % [0,2pi] axis divided into 501 points.
%k = 0:500; w = (pi/500)*k; % [0,pi] axis divided into 501 points.
%X_DTFT = x * (exp(-j*pi/500)) .^ (n'*k); % DTFT of x(n) %magX_DTFT = abs(X_DTFT); angX_DTFT = angle(X_DTFT); realX_DTFT = real(X_DTFT); imagX_DTFT = imag(X_DTFT);
subplot(3,1,2); stem(w1/pi,magY1_DFT); title('Samples of DTFT Magnitude, Not Enough'); %axis([0,N,-0.5,1.5]);
xlabel('frequency in \pi units');
%ylabel('x(n)');
grid on;
subplot(3,1,3); stem(w1/pi,phaY1_DFT); title('Samples of DTFT Phase, Not Enough'); %axis([0,N,-0.5,1.5]);
xlabel('frequency in \pi units');
%ylabel('x(n)');
grid on; %% ------------------------------------------------------
%% zero-padding coperation, Append 90 zeros
%% To obtain a dense spectrum
%% ------------------------------------------------------
n2 = [0:1:99]; y2 = [x(1:1:10) zeros(1,90)]; % zero-padding, N = 100 figure('NumberTitle', 'off', 'Name', 'Exameple5.8 x sequence')
set(gcf,'Color','white');
subplot(2,1,1); stem(n2,y2); title('signal x(n), 0<= n <=9 + 90 zeros, N = 100'); axis([0,100,-2.5,2.5]);
xlabel('n'); ylabel('x(n)'); grid on; Y2_DFT = dft(y2,100); % DFT of y2 magY2_DFT = abs(Y2_DFT(1:1:51));
phaY2_DFT = angle(Y2_DFT)*180/pi % degrees k2 = 0:1:50; w2 = (2*pi/100)*k2; % [0,2pi] axis divided into 501 points.
subplot(2,1,2); stem(w2/pi,magY2_DFT); hold on; plot(w2/pi,magY2_DFT,'--r');
title('DTFT Magnitude'); axis([0,1,0,10.5]); hold off;
xlabel('frequency in \pi units');
%ylabel('x(n)');
grid on; %% -----------------------------------------------------------
%% Exameple5.8b take first 100 samples of x(n)
%% determine the DTFT
%% -----------------------------------------------------------
figure('NumberTitle', 'off', 'Name', 'Exameple5.8b ')
set(gcf,'Color','white');
subplot(2,1,1); stem(n,x); axis([0,100,-2.5,2.5]);
title('signal x(n), 0 <= n <= 99, N = 100'); xlabel('n'); grid on; X = dft(x,100); magX = abs(X(1:1:51));
k = 0:1:50; w = 2*pi/100*k;
subplot(2,1,2); plot(w/pi, magX); title('DTFT Magnitude');
xlabel('frequency in \pi units'); axis([0,1,0,60]); grid on;
%% -----------------------------------------------------------
%% END Exameple5.8b
%% -----------------------------------------------------------
结果:



《DSP using MATLAB》示例Example5.8的更多相关文章
- DSP using MATLAB 示例Example3.21
代码: % Discrete-time Signal x1(n) % Ts = 0.0002; n = -25:1:25; nTs = n*Ts; Fs = 1/Ts; x = exp(-1000*a ...
- DSP using MATLAB 示例 Example3.19
代码: % Analog Signal Dt = 0.00005; t = -0.005:Dt:0.005; xa = exp(-1000*abs(t)); % Discrete-time Signa ...
- DSP using MATLAB示例Example3.18
代码: % Analog Signal Dt = 0.00005; t = -0.005:Dt:0.005; xa = exp(-1000*abs(t)); % Continuous-time Fou ...
- DSP using MATLAB 示例Example3.23
代码: % Discrete-time Signal x1(n) : Ts = 0.0002 Ts = 0.0002; n = -25:1:25; nTs = n*Ts; x1 = exp(-1000 ...
- DSP using MATLAB 示例Example3.22
代码: % Discrete-time Signal x2(n) Ts = 0.001; n = -5:1:5; nTs = n*Ts; Fs = 1/Ts; x = exp(-1000*abs(nT ...
- DSP using MATLAB 示例Example3.17
- DSP using MATLAB示例Example3.16
代码: b = [0.0181, 0.0543, 0.0543, 0.0181]; % filter coefficient array b a = [1.0000, -1.7600, 1.1829, ...
- DSP using MATLAB 示例 Example3.15
上代码: subplot(1,1,1); b = 1; a = [1, -0.8]; n = [0:100]; x = cos(0.05*pi*n); y = filter(b,a,x); figur ...
- DSP using MATLAB 示例 Example3.13
上代码: w = [0:1:500]*pi/500; % freqency between 0 and +pi, [0,pi] axis divided into 501 points. H = ex ...
- DSP using MATLAB 示例 Example3.12
用到的性质 代码: n = -5:10; x = sin(pi*n/2); k = -100:100; w = (pi/100)*k; % freqency between -pi and +pi , ...
随机推荐
- 这些年MAC下我常用的那些快捷键
Command + H:隐藏窗口 Command + M:最小化窗口 Command + N:新建 Command + O:打开 Command + S:保存 Command + shift+S:另存 ...
- oracle---触发器总结
一.触发器简介 触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行.因此触发器不需要人为的去调用,也不能调用.然后,触发器的触发条件其实在你定义的时候就已经设定好了.这里面需 ...
- ElasticSearch-5.0安装head插件
环境 Windows10企业版X64 JDK-1.8 ElasticSearch-5.0.0 node-v4.5.0-x64.msi git客户端 步骤 安装node到D盘.如D:\nodejs. 把 ...
- group by 查询分组后 组的条数
比如select gid from table group by gid 查询时使用下面的方法查询条数 select count(distinct gid) from table 使用select c ...
- Python之路Python3【第零篇】Python2 & Python3区别持续更新~
print def print(self, *args, sep=' ', end='\n', file=None): # known special case of print "&quo ...
- EF 增删改
一.新增 UserInfo user = new UserInfo() { UserName = "jamsebing", UserPass = " }; db.User ...
- ANT的安装
1.下载ANT http://ant.apache.org/bindownload.cgi 2.将下载下来的压缩包解压到任意文件夹下,例如D盘根目录下D:/apache-ant-1.9.2 3.添加环 ...
- rails enum用于存储数据
http://api.rubyonrails.org/classes/ActiveRecord/Enum.html 新的项目中有一个字段是展示类型,可以用下拉框去做,用string存储具体的类型字段. ...
- JS中的 new 操作符简单理解
首先上一一个简单的 new 操作符实例 var Person = function(name){ this.name = name; this.say = function(){ return &qu ...
- java程序打包成jar
1. 建立文件夹:proj,在该文件夹下建立3个子文件夹:lib,src 2. 在lib文件夹中放置依赖的jar包 3. 在src中放置类文件:com.cnjava.demo.Main.java 4. ...