How can I filter white noise to obtain signal with desired PSD?

14 ビュー (過去 30 日間)
Adam Nieslony
Adam Nieslony 2015 年 1 月 23 日
回答済み: Jeremy 2015 年 1 月 27 日
I need to generate various of signals with different PSD (power spectral density) and PDF (probability density function). My input data are only shapes of this two functions and my idea is to generate random numbers of given PDF and after that I will filter the data to signal with desired PSD. It is no problem for me to obtain the random numbers. I am asking only for the filering to desired PSD.
Any tips are welcome.
Regards, Adam

回答 (2 件)

Jeremy
Jeremy 2015 年 1 月 26 日
you are trying to generate a time history with a specified spectral content, such that a PSD from the output will match the initial specified PSD?
The best way to do this is to interpolate the specified PSD down the bin width and Nyquist frequency that corresponds to the desired record length and sampling rate. (for example 0-2500 in .01Hz bins for a 100s record with 5kHz sampling rate) You will then need to randomly generate the phase spectra, convert to the the real and imaginary components and process with an inverse fft.
  2 件のコメント
Adam Nieslony
Adam Nieslony 2015 年 1 月 26 日
Dear Jeremy,
This is a good method (ifft method) to generate signal with desired PSD, but we will obtain signal with Gaussian distribution. I have written such code some years ago and it is working well till now.
Now my problem is to do the same but with additional, fixed and predetermined probability density (PDF), for example non-Gaussian with kurtosis about 2 or completely user defined PDF. I'm trying now to achieve this in two steps. The first step is the generation of Gaussian signal with a given PSD. The second one is the transformation of the signal to desired PDF simultaneously trying not to spoil specified spectral content. But maybe there is a simpler way to achieve this.
Anyway thank you for the answer.
Youssef  Khmou
Youssef Khmou 2015 年 1 月 26 日
編集済み: Youssef Khmou 2015 年 1 月 26 日
I think you have to apply a function on abs(PSD) to obtain the desired shape, after applying fft on drawn input x from chosen PDF.

サインインしてコメントする。


Jeremy
Jeremy 2015 年 1 月 27 日
If you randomize the phases you will end up with a Gaussian distribution because the magnitude at every point will be a random combination of so many different signals. I don't have a real good theoretical explanation, but I have done it and if the phases are randomized you have signal that looks very random and it will have a gaussian distribution as the PSD goes to a constant value.

カテゴリ

Help Center および File ExchangeFourier Analysis and Filtering についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by