-
-
7-Tap Magnitude Response of Quantum-Optimized FIR Filter (MATLAB)
-
7-Tap Frequency Response of Quantum FIR Filter (Decibel Scale MATLAB)
-
401-Tap Frequency Response Using Parks–McClellan (MATLAB)
-
401-Tap Frequency Response Using Parks–McClellan (Decibel Scale MATLAB)
-
From Parks-McClellan Wikipedia Page
Abstract
This project explores the application of quantum computing to the design of Finite Impulse Response (FIR) lowpass filters, inspired by the classical Parks-McClellan algorithm. Traditionally, generating an optimal Chebyshev FIR filter involves a minimax optimization of polynomial coefficients to minimize error across passband frequencies. We successfully reframed this process as a quadratic programming problem and applied the Quantum Approximate Optimization Algorithm (QAOA) via Qiskit to find the optimal filter taps. Our methodology involved encoding the constraints, executing both classical and quantum solvers, and comparing the resulting frequency responses against each other and an ideal examples.
While we successfully adapted the core optimization task for a quantum environment, we encountered strict hardware and simulation bottlenecks. Because classical simulation of qubits scales exponentially, our quantum model was restricted to a minimal number of taps (e.g., seven). This limitation predictably resulted in a suboptimal filter with noticeable ripples and a gradual frequency cutoff. We demonstrate that while QAOA is mathematically viable for filter design, producing a sharp, high-fidelity lowpass filter requires significantly more taps, which subsequently increase qubit demand. Future scalable implementations will depend on advanced quantum hardware having more reliable qubits to be used for computation then what we can simulate classically.
Inspiration
Inspired from learning about the Parks–McClellan filter design algorithm in ECE 203 Signals and Systems. As it turns out, generating a Chebyshev Finite Impulse Response filter for a given pass band requires an optimization over the coefficients the characteristic Chebyshev polynomial to find the most optimal filter which has the minimum max error over the pass band frequencies. A.k.a. this is a mini-max optimization problem that we are attempting to apply quantum optimization towards.
What it does
Takes a range of frequencies and attenuates frequencies over a given cutoff. Uses QAOA to find optimal coeffects for the FIR lowpass filter.
How we built it
Here was our step by step process: 1.) Specified problem constraints around resource constraints 2.) Encoded problem into quadratic 3.)Solve with exact and quantum solvers 4.) Reconstructed coefficients from results 5.) Graphed frequency responses 6.) Compared to Parks-McClellan algorithm Code was made with Gemini
Challenges we ran into
Initially, understanding the Parks-McClellan algorithm and Chebyshev polynomials was a challenge. Deprecated models when trying to make the algorithm! Making a code around qiskit simulation constraints.
Accomplishments that we're proud of
Reverse engineering the Parks-McClellan algorithm and finding a way quantum optimization to complete the same task.
What we learned
We learned that the Parks-McClellan algorithm uses Chebyshev polynomials which can be molded into a quadratic program which can be optimized via classical and quantum solvers. The FIR lowpass filter heavily depends on the number of taps it uses to represent the filter, which itself is a sinc function. By only using seven taps you will not get a very good FIR lowpass filter. Due to the scope of our simulation capabilities, we cannot optimize for longer FIR lowpass filters as the classical simulation of qubits grows exponentially.
What's next for Optimization of Chebyshev Polynomial FIR Filter
To make the lowpass filter have a sharper drop off and less noticeable ripples it would require more coefficients. More coefficients requires more qubits to run, so a quantum computer that has more reliable qubits could in theory create a viable lowpass filter.
Built With
- google-gemini
- juypter-notebook
- python
- qiskit
Log in or sign up for Devpost to join the conversation.