📄 drfmfreq.m
字号:
% Program Plots Output Spectrum of DRFM
% Using I and Q Quadrature Channels
% -------------------------------------
clear;clf;clc;
% Sample Input Signal
N=2048; % Samples
t=(1:N)/N;
fs=100; % Hz
j=sqrt(-1);
% Generate input signals
B=[1 5]; % Quantizing Bits
num=[1 5]; % Number Input Signals
for bb=1:2;
for nn=1:2;
z=exp(j*2*pi*fs*t);
for k=1:num(nn)-1;
zz=exp(j*2*pi*fs*(1+.2*k)*t);
z=z+zz;end;
% Quantize Input Signals
M=2^(B(bb)-1);
for i=1:N;
xx(i)=(M*real(z(i)))/num(nn);
yy(i)=(M*imag(z(i)))/num(nn);
if xx(i)>0;x(i)=ceil(xx(i))/M;
else x(i)=floor(xx(i))/M;end;
if yy(i)>0;y(i)=ceil(yy(i))/M;
else y(i)=floor(yy(i))/M;end;end;
m=nn+2*(bb-1);
w(m,:)=x+j*y;
% Find Spectrum
X=fft(w(m,:),N);
X=fftshift(X);
Pxx=X.*conj(X);
Pxx=Pxx/max(Pxx);
Pz=10*log10(Pxx+1e-6);
P(:,m)=Pz';
end;
end;
% Plot DRFM Spectrum
f=(-N/2:N/2-1);
subplot(221);
plot(f,P(:,1));grid;
title(['DRFM Spectrum (Bits=',num2str(B(1)),',Sig=',num2str(num(1)), ')']);
axis([-500 500 -40 0]);
xlabel('Frequency - Hz');
ylabel('Amplitude - dB');
subplot(223);
plot(f,P(:,2));grid;
axis([-500 500 -40 0]);
xlabel('Frequency - Hz');
ylabel('Amplitude - dB');
title(['DRFM Spectrum (Bits=',num2str(B(1)),',Sig=',num2str(num(2)),')']);
subplot(222);
plot(f,P(:,3));grid;
axis([-500 500 -40 0]);
xlabel('Frequency - Hz');
ylabel('Amplitude - dB');
title(['DRFM Spectrum (Bits=',num2str(B(2)),',Sig=',num2str(num(1)),')']);
subplot(224);
plot(f,P(:,4));grid;
axis([-500 500 -40 0]);
xlabel('Frequency - Hz');
ylabel('Amplitude - dB');
title(['DRFM Spectrum (Bits=',num2str(B(2)),',Sig=',num2str(num(2)),')']);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -