Main Content

Channelize and Synthesize Sine Wave in MATLAB

Channelize and synthesize a sine wave signal with multiple frequencies using an M -channel filter bank.

The M -channel filter bank contains an analysis filter bank section and a synthesis filter bank section. The dsp.Channelizer object implements the analysis filter bank section. The dsp.ChannelSynthesizer object implements the synthesis filter bank section. These objects use an efficient polyphase structure to implement the filter bank. For more details, see Polyphase Implementation under Algorithms on the object reference pages.

Initialization

Initialize the dsp.Channelizer and dsp.ChannelSynthesizer System objects. Each object is set up with 8 frequency bands, 8 polyphase branches in each filter, 12 coefficients per polyphase branch, and a stopband attenuation of 140 dB. Use a sine wave with multiple frequencies as the input signal. View the input spectrum and the output spectrum using a spectrum analyzer.

offsets = [-40,-30,-20,10,15,25,35,-15];
sinewave = dsp.SineWave(ComplexOutput=true,Frequency=offsets+(-375:125:500),...
    SamplesPerFrame=800);

channelizer = dsp.Channelizer(StopbandAttenuation=140);
synthesizer = dsp.ChannelSynthesizer(StopbandAttenuation=140);
scope = spectrumAnalyzer(ShowLegend=true,...
    SampleRate=sinewave.SampleRate,...
    ChannelNames=["Input","Output"],...
    Title="Input and Output Spectra");

Streaming

Use the channelizer to split the broadband input signal into multiple narrow bands. Then pass the multiple narrowband signals into the synthesizer, which merges these signals to form the broadband signal. Compare the spectra of the input and output signals. The input and output spectra match very closely.

for i = 1:5000
    x = sum(sinewave(),2);
    y = channelizer(x);
    v = synthesizer(y);
    scope(x,v)
end

See Also

|

Related Topics