Wiener filter - MATLAB implementation

  • Context: MATLAB 
  • Thread starter Thread starter hugheyst
  • Start date Start date
  • Tags Tags
    Filter Matlab
Click For Summary
SUMMARY

The discussion focuses on the implementation of an 11-tap Wiener filter in MATLAB to mitigate additive noise from a QPSK signal transmitted over a multipath channel. The user describes the process of calculating filter coefficients using the formula c = σ2A(R-1p)*, where p is a vector derived from the channel impulse response. Despite following the outlined steps, the user experiences a 50% bit error rate across various signal-to-noise ratios, indicating issues in the implementation that require troubleshooting.

PREREQUISITES
  • Understanding of Wiener filter principles in signal processing
  • Familiarity with QPSK modulation techniques
  • Knowledge of MATLAB programming for signal processing
  • Experience with autocorrelation functions and their applications
NEXT STEPS
  • Research MATLAB functions for implementing Wiener filters
  • Learn about the effects of multipath channels on signal integrity
  • Explore techniques for calculating and interpreting autocorrelation in MATLAB
  • Investigate methods to optimize bit error rate in QPSK systems
USEFUL FOR

Signal processing engineers, MATLAB developers, and anyone involved in optimizing QPSK communication systems will benefit from this discussion.

hugheyst
Messages
5
Reaction score
0
Hello,

I'm currently working on a project in which I am required to implement an optimum 11-tap linear equalizer (Wiener filter) to remove additive noise from a QPSK signal over a multipath channel. The channel impulse response h{k} is known.

My understanding of the implementation:

Input sequence A

vector p = [gh,d gh,d-1 ... gh,0 0 0 0 ... 0] is length 11, where d is a delay in samples.

From this vector, p, and the autocorrelation function of the noisy received sequence, R, we can calculate the filter coefficients c like so:

c = σ2A(R-1p)*

We then convolve this vector c with the noisy received sequence to obtain a 'less dirty' version of the transmitted sequence A.

This is the explanation I've been given; however, I still cannot get it to work in MATLAB. My bit error rate is 50% over a wide range of signal-noise ratios for AWGN. Perhaps someone could point me in the right direction?
 
Physics news on Phys.org
I think you should repost this or ask the moderator to move it to the "Electrical Engineering" section...
 

Similar threads

  • · Replies 9 ·
Replies
9
Views
5K
  • · Replies 1 ·
Replies
1
Views
14K
  • · Replies 3 ·
Replies
3
Views
5K
  • · Replies 15 ·
Replies
15
Views
2K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 13 ·
Replies
13
Views
4K
Replies
8
Views
68K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 11 ·
Replies
11
Views
13K
Replies
4
Views
7K