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

📄 fig9_13b.m

📁 数字信号处理Matlab演示文件,其中各个文件加放置了不同的matlab子文件
💻 M
字号:
% 	Figures 9.13(b)
%	DFT of two complex freqencies
%	with zero padding
%	Hamming window
%
%	BM July 1998

clf
clear
colordef(1,'black')

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

%	complex input signal
tt = 0:1:M-1;
x = a * exp ( j*2*pi*f'*tt/M ); 

%	window input signal
win = hamming(M)';
x = x .* win;

pmin = -100;			% bottom of plot
xmin = -100;			% "log zero"
%	NDFT-point DFT
XM = fft(x,M);
X = fft(x,NDFT);
magxm = 10*log10(XM .* conj(XM)/M/M);
magx = 10*log10(X .* conj(X)/M/M);

for ii = 1:M;
	if magxm(ii) < pmin
		magxm(ii) = xmin;
	end
end
for ii = 1:NDFT;
	if magx(ii) < pmin
		magx(ii) = xmin;
	end
end
%binxm = tt*NDFT/M;
binxm =tt;
binx = bin*M/NDFT;

%	set up data plot
lo = line('Xdata',binx,'Ydata',magx,'Linestyle','-','Color','r','Erasemode','Xor');
l1 = line('Xdata',binxm,'Ydata',magxm,'Linestyle','o','Color','y','Erasemode','Xor');
xlabel('frequency bin of 64-point transform'),ylabel('magnitude (dB)'),title('zero-padded DFT (Hamming window)')
axis( [ 0 M pmin 3 ]);

fprintf(1,'Figures 9.13: DFT of phasors at bins 10 and 16\n');
fprintf(1,'            : 64-point DFT (circles); zero-padded to 512-point (continuous line)\n');
fprintf(1,'            : Hamming window\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'*tt/M ); 
	x = x .* win;
	X = fft(x,NDFT);
	magx = 10*log10(X .* conj(X)/M/M);
	for ii = 1:NDFT
		if magx(ii) < pmin
			magx(ii) = xmin;
		end
	end
	XM = fft(x,M);
	magxm = 10*log10(XM .* conj(XM)/M/M);
	for ii = 1:M
		if magxm(ii) < pmin
			magxm(ii) = xmin;
		end
	end

	set(lo,'Xdata',binx,'Ydata',magx);
	set(l1,'Xdata',binxm,'Ydata',magxm);
	pause(1)
end


⌨️ 快捷键说明

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