www.pudn.com > matlab-fsk.rar > fsk.m


function [y, fs, fb, fc1, fc2] = fsk(x, Kbase, fs, fb, fc1, fc2); 
% 
% Usage: FSK调制 
% chc 05-3-19(Example from book p288) 
% ----------------------------------------------------% 
% x: bit stream; Kbase:1/2--(不)采用基带成形        % 
% (fs:sampling fre; fb:bit rate; fc:carrier fre)      % 
% y: 已调信号                                         % 
%-----------------------------------------------------% 
if nargin<6; fc2=2.5;   end; 
if nargin<5; fc1=2;     end; 
if nargin<4; fb=1;      end; 
if nargin<3; fs=32;     end; 
if nargin<2; Kbase=1;   end; 
if nargin<1;  
    x=[0 0 1 1 1 0 0 1 0 1 1 0 0 0 1 0]; end; 
T=length(x)/fb; 
m=fs/fb; 
dt=1/fs; t=0:dt:T-dt; 
xx=RecPulse(x, m, 2);                                                      % 基带信号 
if Kbase==2; xx=bshapeEx(xx); end;                                         % 基带成形 
y= (xx>=0).*sin(2*pi*fc1*t)+(xx<0).*sin(2*pi*fc2*t);                       % FS 
 
% ----------------------------------------------------------- % 
if nargout<1; 
    subplot(211); plot(t, y, t, xx*.5, [0 T], [0 0], 'b:'); 
    title('Signal'); 
     
    n=length(y); y=fft(y)/n; y=abs(y(1:fix(n/2)))*2; 
    I=find(y<1e-04); y(I)=1e-04; x=20*log10(x);     
    f1=m/n; f=0:f1:(length(y)-1)*f1; 
    subplot(212); plot(f, y, 'r'); grid on; 
    title('Spectrum'); xlabel('f/fb'); zoom xon; 
    set(gcf,'num','off','name',... 
        ['FSK', blanks(10)]); 
end;