garymooney / qmuvi

qMuVi - A python package that converts quantum circuits into audiovisual experiences, bridging the gap between complex quantum computations and human perception. Render music videos that reveal the evolution of quantum states during algorithm processing, making quantum computing more intuitive and accessible.
https://garymooney.github.io/qmuvi/
GNU Lesser General Public License v2.1
14 stars 4 forks source link

Noise Reduction Denoise Related Questions #34

Closed minminjao closed 1 year ago

minminjao commented 1 year ago

Description

Hello, while I was studying qmuvi, I had a question about noise, so I wanted to get my knowledge checked, so I left an issue. Is it right that the only way to make noise is through this link(https://github.com/garymooney/qmuvi/blob/main/qmuvi/quantum_simulation.py#L23) , and the 'thermal_relaxation_error' in the qiskit official document is not allowed(https://qiskit.org/documentation/tutorials/simulators/3_building_noise_models.html#Qiskit-Aer-Noise-Module)? And I heard that you can use autoencoder while looking for documents related to denoise as a way to reduce noise, so I wonder if you can use qmuvi to denoise a song that I coded in qmuvi.

What I Did

i try to make song (same song)

garymooney commented 1 year ago

Hi @minminjao

You can use any qiskit noise model you like, as long as it's compatible with the AerSimulator. The "get_simple_noise_model" function provided in qMuVi is just a helper to simplify the process of adding some kind of noise.

For example, you could make your own NoiseModel by copying the code from the "get_simple_noise_model" function. The single-qubit thermal_relaxation_error can be added to the depolarizing_error with the following code.

noise_model = NoiseModel()

gate_error_1q_depolarising = depolarizing_error(gate_error_rate_1q, 1)
# args are T1, T2 and gate times in microseconds
gate_error_1q_thermal_relaxation = thermal_relaxation_error(50e3, 70e3, 50)
gate_error_1q_combined = gate_error_1q_depolarising.compose(gate_error_1q_thermal_relaxation)

noise_model.add_all_qubit_quantum_error(gate_error_1q_combined, ["u1", "u2", "u3"])

gate_error_cnot_depolarising = depolarizing_error(gate_error_rate_cnot, 2)
noise_model.add_all_qubit_quantum_error(gate_error_cnot_depolarising, ["cx"])

You can find more complicated examples in the Qiskit documentation (https://qiskit.org/documentation/tutorials/simulators/3_building_noise_models.html#Qiskit-Aer-Noise-Module)

And I heard that you can use autoencoder while looking for documents related to denoise as a way to reduce noise, so I wonder if you can use qmuvi to denoise a song that I coded in qmuvi.

Nice idea, that would be interesting to see.