Student Support Forum: 'Signals and Systems and sampling rates' topicStudent Support Forum > General > "Signals and Systems and sampling rates"

 < Previous Comment Help | Reply To Comment | Reply To Topic
 Author Comment/Response Aaron Honecker 09/13/00 1:52pm >Hello,> >This may be trivially obvious, but I can't find it in the documentation. I am using the Signals and Systems package to filter a signal. > >I am given: > (1) a text file with the sampled signal ''as is'' > (2) the sampling rate at which the signal was sampled > >I would like to: > (1) filter the signal with a bandpass filter of my choice (Butterworth, Bessel, ...), with specified cutoff frequencies. > >Questions: > (1) how do I tell Mathematica the rate at which the signal was sampled? > (2) how do I build a filter with arbitrary cutoff frequencies? I was going to use FilterSpecifications[] with Passband and Stopband, but then I appear to lack the answer to (1). > >Thanks! > >   --Paul Typically to design a digital filter, you start by designing an analog filter that meets the desired specifications. Then through Impulse invariance or the Bilinear transformation you convert the analog filter into a digital filter by specifying the sampling frequency. Both the ImpulseInvariance and BilinearTransformation commands in the Signal and Systems application allow for the specification of the sampling frequency. To allow for an arbitrary cutoff frequency you will want to used a delayed assignment to specify the filter as a function of the cutoff frequency. Then using that function, you can specify the desired cutoff frequency and then convert the the analog prototype filter to a digital filter. Here is a generalization of an example in the online documentation: This example allows for a cutoff frequency and sampling frequency to be specified for the design of the digital filter from the analog filter. filter[wc_] := DesignAnalogFilter[Butterworth, t, FilterSpecification[ Passband[1 - 10^(-1/20), {0, 0.2wc}], Stopband[10^(-15/20), {0.3wc, Infinity}] ]] digitalFilter[wc_, Ts_] := ImpulseInvariance[filter[wc], Ts, t, n] MagnitudePhasePlot[ DiscreteTimeFourierTransform[Evaluate[digitalFilter[Pi, 1]], n, w], {w, 0, Pi}, PhaseScale -> None, MagnitudeScale -> Log, Frame -> True, Axes -> False ] URL: ,

 Subject (listing for 'Signals and Systems and sampling rates') Author Date Posted Signals and Systems and sampling rates Paul Edney 09/11/00 5:54pm Re: Signals and Systems and sampling rates Aaron Honecker 09/13/00 1:52pm
 < Previous Comment Help | Reply To Comment | Reply To Topic