📄 ncosinwave.m
字号:
%================================================================
% nco.m is a program that generate N bits rom sin output
% Copyright :blutea 2004_10_20
% vionsion: 1.0
%================================================================
function nco_out=ncosinwave(n,m)
tsnum=4*2^n;
%---------产生一个周期和1/4周期的正弦信号---------
t=[0:tsnum-1]*2*pi/tsnum;
nco_out=sin(t);
nco_out=nco_out*(2^m-1);
%-----------没有取整的输出--------------------------
nco_out_prim=nco_out;
%------------取整的输出------------------------------
nco_out=round(nco_out);
%---------一个周期的正弦信号-------------------------
nco_out_whole=nco_out;
%----------1/4周期的正弦信号-------------------------
nco_out=nco_out(1:tsnum/4);
%----------1/4周期组成的整周期正弦信号----------------
nco_out_quta=[nco_out,fliplr(nco_out),-nco_out,-fliplr(nco_out)];
%---------用FFT分析动态范围---------
plotin=[nco_out_quta];
figure(101);
subplot(2,1,1),plot(plotin);grid on
title('nco time analyse');
xlabel('time ');
fft_num=tsnum;
nco_fft =fft(plotin,fft_num);
nco_fft =nco_fft(1:fft_num/2);
nco_fft = abs(nco_fft);
nco_fft=20*log10(nco_fft+1e-4);%由于nco_out的对称性FFT后隔一位产生一个0
subplot(2,1,2),plot(nco_fft);grid on
title('Frequency content of nco');
xlabel('frequency');
ylabel('Magtitude(dB)');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -