⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fig9_9.m

📁 数字信号处理Matlab演示文件,其中各个文件加放置了不同的matlab子文件
💻 M
字号:
% 	Figures 9.9 & 9.10
%	DFT of two complex freqencies

clf
clear
colordef(1,'black')

M = 64;				% FFT size
bin = 0:1:M-1;			% FFT bins
f = [ 10 16 ];			% bin frequencies of complex phasors
adB = [ 0 -40 ];		% power in dB of phasors
a = 10 .^ (adB/20);		% magnitude of phasors		

%	complex input signal
x = a * exp ( j*2*pi*f'*bin/M ); 

min = -100;			% bottom of plot
xmin = -100;			% "log zero"
%	M-point DFT
X = fft(x);
magx = 10*log10(X .* conj(X)/M/M);
for ii = 1:M;
	if magx(ii) < min
		magx(ii) = xmin;
	end
end

%	set up data plot
lo = line('Xdata',bin,'Ydata',magx,'Linestyle','o','Color','y','Erasemode','Xor');
ll = zeros(1,M);
for ii = 1:M
	ll(ii) = line('Xdata',[ii-1 ii-1],'Ydata',[min magx(ii)],'Linestyle','-','Color','y','Erasemode','Xor'); 
end
%lh = line('Xdata',[0 M],'Ydata',[ 0 0 ],'Linestyle','-','Color','w','Erasemode','Xor');
xlabel('frequency bin'),ylabel('magnitude (dB)'),title('DFT')
axis( [ 0 M min 3 ]);

fprintf(1,'Figures 9.9 & 9.10: DFT of phasors at bins 10 and 16\n');
fprintf(1,'                  : Press return to increase both frequencies in\n');
fprintf(1,'                  : steps of 0.1 of a bin to 12 and 18 respectively\n');
pause

step = 0.0:0.1:2;
num = max(size(step));

%	increment frequencies over one bin
for ii = 1:num
	f = [ 10+step(ii) 16+step(ii) ];	
	x = a * exp ( j*2*pi*f'*bin/M ); 
	X = fft(x);
	magx = 10*log10(X .* conj(X)/M/M);
	for ii = 1:M
		if magx(ii) < min
			magx(ii) = xmin;
		end
	end

	set(lo,'Xdata',bin,'Ydata',magx);
	for jj=1:M
		set(ll(jj),'Xdata',[jj-1 jj-1],'Ydata',[min magx(jj)]);
	end
	
	pause(1)
end


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -